systemctl
обычно представляет собой команду, используемую для настройки и управления systemd
.
Модуль systemd может включать в себя инструкции о том, что делать, если процесс завершается.
Например, в RedHat 7 установка rsyslogd по умолчанию включает файл модуля, в состав которого входит:
[Service]
....
Restart=on-failure
.
Из man systemd.service
:
Restart=
Configures whether the service shall be restarted when the service
process exits, is killed, or a timeout is reached. The service
process may be the main service process, but it may also be one of
the processes specified with ExecStartPre=, ExecStartPost=,
ExecStop=, ExecStopPost=, or ExecReload=. When the death of the
process is a result of systemd operation (e.g. service stop or
restart), the service will not be restarted. Timeouts include
missing the watchdog "keep-alive ping" deadline and a service
start, reload, and stop operation timeouts.
Takes one of no, on-success, on-failure, on-abnormal, on-watchdog,
on-abort, or always. If set to no (the default), the service will
not be restarted.
systemd
является относительно новым, и люди могут не знать о его возможностях. Кроме того, они могут не знать о пользовательских единицах, которые позволяют пользователям делать свои собственные вещи.
supervisord
- это гораздо более старая программа, поэтому люди могут быть более осведомлены об этом, потому что использовали ее в течение десяти лет и не видят необходимости в изменении.