Так, мы уже знаем как безопасно переопределять юниты, как их дебажить и ну и так по мелочи.
ㅤ
Но не знаем как всё это дело тестировать. А для тестирования тебе пригодится ключик
--runtime.Ключ --runtime — создаёт временное переопределение, которое исчезнет после перезагрузки.
Идеально подходит, если ты тестишь, не уверен или не хочешь ничего портить.
А вот и сама команда:
SYSTEMD_EDITOR=vim systemctl edit --runtime nginx
Как ты мог заметить, зачастую по умолчанию открывается nano редактор, но у многих с ним проблемы. Поэтому в команде сразу втыкаем нужный редактор, например mcedit или vim.
Всё! Теперь правим юнит, тестируем. Временный файл с
override будет создан тут /run/systemd/. И самое главное — все изменения сохранятся только до следующей перезагрузки системы.
А какая в этом польза?
1. Для временного изменения конфигурации
systemd без затрагивания оригинального файла.2. Для тестов или отладки (например, сменить
ExecStart для nginx только на время текущей сессии).3. Чтобы не создавать перманентные изменения, которые могут повлиять на стабильность после перезагрузки.
Пример с nginx
Хочу временно запустить nginx с другим конфигом! Создаю рантайм.
[Service]
ExecStart=
ExecStart=/usr/sbin/nginx -c /home/user/nginx-bashdays.conf
Перезапускаю
nginx и радуюсь результату, теперь nginx запущен с другим конфигом.А почему ExecStart идет дважды?
Хе брат, это очередная приколюха
systemd. Оно очищает предыдущее значение ExecStart из основного юнита. А следующая строка задаёт новое значение. Без этой хуйни
systemd бы просто добавил вторую команду, не заменив первую.Думаю на этом можно закончить. Я неочевидную базу выдал, а ты стал еще сильнее. Изучай и ничего не бойся!
🛠 #linux #tricks #debug #systemd
—
✅ @bashdays / @linuxfactory / @blog