Демон Systemd -перезагрузить новую службу

Объедините headи tail, как в этих двух примерах:

$ seq 1 80 | head -n 17 | tail -n 1
17

$ seq 1 10 | head -n 17 | tail -n 1
10

Итак, чтобы решить вашу актуальную проблему, введите команду:

watch 'for f in *; do head -n 17 -- "$f" 2>/dev/null | tail -n 1 ; done'

Обратите внимание на часть 2>/dev/null, она необходима, потому что *будет соответствовать каталогам и любым файлам, на чтение которых у вас может не быть разрешения, что приведет к появлению сообщения об ошибке, которое вы, вероятно, захотите скрыть.

0
30.09.2021, 01:28
1 ответ

Необходимость systemctl daemon-reloadзависит от того, как ведет себя ваша служба. Со страницы руководства для systemctl (1 ),

daemon-reload

Reload the systemd manager configuration. This will rerun all generators (see systemd.generator(7)), reload all unit files, and recreate the entire dependency tree.

Например, предположим, что у вашего сервиса есть зависимости или конфликты. Тогда вы можете использовать daemon-reload. Если это простой сервис, он может не нуждаться в этом.

При первом enableзапуске службы конфигурация администратора системы перезагружается. Таким образом, если вы хотите протестировать свою службу с помощью start, вам не нужно daemon-reload, если у вас enabled ваша служба.

Опять же, из справочной страницы для systemctl (1 ),

enable UNIT..., enable PATH...

This will create a set of symlinks, as encoded in the [Install] sections of the indicated unit files. After the symlinks have been created, the system manager configuration is reloaded (in a way equivalent to daemon-reload), in order to ensure the changes are taken into account immediately.

Если вы хотите внести изменения в файл сервисного модуля и повторно протестировать его, вы можете выполнить daemon-reloadв зависимости от того, что это за изменения. В любом случае, daemon-reloadможно сделать, и система может попросить вас сделать это, когда вы startвыполняете свою услугу.

0
30.09.2021, 07:35

Теги

Похожие вопросы