Reexec VS Reload
Порой народ путает команды systemctl daemon-reload
и systemctl daemon-reexec
.
С виду вроде похожие, но нет. Спросил тут на досуге товарища — а ты знаешь чем они отличаются?
Да, ответил товариш, reexec это старая версия перечитывания сервисов и юнитов. Я обычно делаю так:
systemctl daemon-reexec
systemctl daemon-reload
systemctl enable node_exporter
systemctl start node_exporter
Неее… так не нужно! Это хуйня! По крайней мере первая команда тебе тут не нужна для перезапуска и обновления сервисов.
Команда systemctl daemon-reexec
перезапускает сам systemd, это нужно например при обновлении бинарников systemd
, но никак не для перезапуска юнитов и сервисов.
После редактирования *.service / *.timer / *.mount
файлов, достаточно сделать daemon-reload
, эта команда перечитает unit-файлы.
Обычно проходится по каталогам:
/etc/systemd/system/
/lib/systemd/system/
/usr/lib/systemd/system/
/run/systemd/system/
То есть она перезагружает только конфигурацию юнитов, без перезапуска сервисов.
Так что не путай, в большинстве случаев тебе достаточно daemon-reload
.