Я читал man-страницу для systemctl reload
и нашел это предложение о reload
.
reload PATTERN...
Asks all units listed on the command line to reload their
configuration.
http://man7.org/linux/man-pages/man1/systemctl.1.html
Как systemd это делает? Какой API использует systemd, чтобы попросить юнит перезагрузить его конфигурацию?
Я также нашел reload-or-restart
.
reload-or-restart PATTERN...
Reload one or more units if they support it. If not, restart them
instead.
Как работает systemd знать если аппарат поддерживает перезагрузку?
Вот что на странице руководства systemd.service
говорит о перезарядке:
ExecReload=
Commands to execute to trigger a configuration reload in the
service. This argument takes multiple command lines, following
the same scheme as described for ExecStart= above. Use of
this setting is optional. Specifier and environment variable
substitution is supported here following the same scheme as
for ExecStart=.
One additional, special environment variable is set: if known,
$MAINPID is set to the main process of the daemon, and may
be used for command lines like the following:
/bin/kill -HUP $MAINPID
Note however that reloading a daemon by sending a signal
(as with the example line above) is usually not a good
choice, because this is an asynchronous operation and hence
not suitable to order reloads of multiple services against
each other. It is strongly recommended to set ExecReload=
to a command that not only triggers a configuration reload
of the daemon, but also synchronously waits for it to complete.
(Единственный способ узнать, что systemd.service
правильная страница руководства для поиска была в Google для ExecReload
, строка, которую я догадался, покопавшись в исходном коде Systemd.)