Существует несколько причин, по которым необходимо переименовать службу systemd в рабочей среде. Например:
- чтобы лучше отличить его от нового
- потому что твой босс приказал это
- из-за устаревших скриптов
- ...
Предположим, что новая общая служба создана в /etc/systemd/система/foo.service
и включен и запущен следующим образом: [1]
systemctl демон-перезагрузка
systemctl включить --now foo
Затем вы можете переименовать его из foo.service
к бар.сервис
никоим образом не влияя на соответствующий процесс.
В обычных обстоятельствах вы можете просто сделать что-то вроде этого:
mv foo.service bar.service
systemctl демон-перезагрузка
systemctl отключить foo
панель включения systemctl
Затем вы получаете:
systemctl статус foo
: Бег
не найден
Отключено
строка состояния systemctl
: не бегать
включено
Итак, вы можете исправить это с помощью:
systemctl остановить foo
стартовая панель systemctl
Или с перезагрузкой. Однако в производственных средах это невозможно, поскольку вы не хотите останавливать приложение для таких изменений. Кроме того, перезагрузки запланированы через месяцы или годы. В то же время рискованно держать долго остановленный сервис типа бар
который не должен запускаться по ошибке до остановки ненайденного запущенного фу
.
Вкратце. Какой подход вы бы использовали для переименования службы systemd в рабочей среде?
Идеальным условием была бы обратная совместимость двух сервисов. Таким образом, остановка фу
также останавливается бар
наоборот.