web-dev-qa-db-ja.com

アクティブ(終了)を示すsysstat.serviceのステータス

sysstatのステータスが表示されると、次のようになります。

● sysstat.service - Resets System Activity Logs
Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; 
vendor preset: enabled)
Active: active (exited) since Wed 2018-11-28 11:46:45 EST; 4s ago
Process: 4159 ExecStart=/usr/lib64/sa/sa1 --boot (code=exited, 
status=0/SUCCESS)
Main PID: 4159 (code=exited, status=0/SUCCESS)

Nov 28 11:46:45 localhost systemd[1]: Starting Resets System 
Activity Logs...
Nov 28 11:46:45 localhost systemd[1]: Started Resets System 
Activity Logs.

また、上記で指定されたpidも見つかりませんでした。

質問は、なぜこれが起こるのですか?

1
muhammad

あなたの仮定は間違っています。 sysstatは「ワンショット」タイプのサービスです。つまり、一度実行すると終了します。

$ cat /usr/lib/systemd/system/sysstat.service

#... elided ...

[Service]
Type=oneshot
RemainAfterExit=yes
User=root
ExecStart=/usr/lib64/sa/sa1 --boot

#... elided ...

...これはPIDがない理由を説明しています-プロセスがもうないからです。

systemdサービスのドキュメント は、部分的に次のように述べています。

ワンショットの動作は単純に似ています。ただし、systemdがフォローアップユニットを開始する前に、プロセスを終了する必要があると予想されます。

3
Jeff Schaller