У меня есть служба Unit-File mediation.service
как это:
[Unit]
Description=Mobile-IP Log dumper
[Service]
Type=forking
ExecStart=/opt/mediation/mediation start
ExecStopPost=/opt/mediation/mediation stop
ExecReload=/opt/mediation/mediation reload
PIDFile=/var/lib/mediation/syslog-ng.pid
Теперь предположим, что кто-то запускает службу напрямую с помощью /opt/mediation/mediation start
вместо использования systemctl start mediation
В этом случае systemctl status mediation
покажет:
● mediation.service - Mobile-IP Log dumper
Loaded: loaded (/etc/systemd/system/mediation.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Mon 2016-07-11 11:24:11 CEST; 8s ago
Process: 14088 ExecStopPost=/opt/mediation/mediation stop (code=exited, status=0/SUCCESS)
Process: 13482 ExecStart=/opt/mediation/mediation start (code=exited, status=0/SUCCESS)
Main PID: 13746
Возможно, что systemctl status mediation
показывает правильный статус (т. Е. Работает) службы? Похоже, systemctl не перезагружает PIDFile при проверке состояния, потому что в этом случае будет доступна вся информация и известен соответствующий статус.