Как безопасно тестировать юниты
Так, мы уже знаем, как безопасно переопределять юниты, как их дебажить, ну и так, по мелочи.
Но не знаем, как всё это дело тестировать. А для тестирования тебе пригодится ключик --runtime.
Ключ --runtime создаёт временное переопределение, которое исчезнет после перезагрузки.
Идеально подходит, если ты тестишь, не уверен или не хочешь ничего портить.
А вот и сама команда:
SYSTEMD_EDITOR=vim systemctl edit --runtime nginx
Как ты мог заметить, зачастую по умолчанию открывается редактор Nano, но у многих с ним проблемы. Поэтому в команде сразу втыкаем нужный редактор, например mcedit или Vim.
Всё! Теперь правим юнит, тестируем. Временный файл с override будет создан тут: /run/systemd/.
А какая в этом польза?
- Для временного изменения конфигурации
systemdбез затрагивания оригинального файла. - Для тестов или отладки, например сменить
ExecStartдляnginxтолько на время текущей сессии. - Чтобы не создавать перманентные изменения, которые могут повлиять на стабильность после перезагрузки.
Пример с nginx
Хочу временно запустить nginx с другим конфигом! Создаю рантайм.
[Service]
ExecStart=
ExecStart=/usr/sbin/nginx -c /home/user/nginx-bashdays.conf
Перезапускаю nginx и радуюсь результату, теперь nginx запущен с другим конфигом.
А почему ExecStart идёт дважды?
Хе, брат, это очередная приколюха systemd. Оно очищает предыдущее значение ExecStart из основного юнита. А следующая строка задаёт новое значение.
Без этой хуйни systemd бы просто добавил вторую команду, не заменив первую.
Думаю, на этом можно закончить. Я неочевидную базу выдал, а ты стал ещё сильнее. Изучай и ничего не бойся!








Комментарии