Рейтинг:5

Как переименовать службу systemd, не влияя на процесс (без остановки/перезапуска)

флаг eg

Существует несколько причин, по которым необходимо переименовать службу 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 в рабочей среде?

Идеальным условием была бы обратная совместимость двух сервисов. Таким образом, остановка фу также останавливается бар наоборот.


Рейтинг:7
флаг cn

Может быть какой-то лучший метод, о котором я не знаю, но это приходит на ум как обходной путь, который в основном дает вам то, что вам нужно, пока у вас не будет возможности перезапустить службу:

  1. Создайте символическую ссылку с желаемым новым именем, которая указывает на существующий служебный файл (и systemctl демон-перезагрузка).
    Системд рассматривает символические ссылки на юниты как псевдонимы вместо отдельных юнитов, что означает, что оба имени теперь будут относиться к одному и тому же юниту (тот же статус, то же самое все).
  2. Запланируйте фактическую замену службы во время следующего периода обслуживания.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.