Systemd
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
上面指定的任何內容。問題是,為什麼會發生這種情況?
你的假設是錯誤的。sysstat 是一個“oneshot”類型的服務,這意味著它執行一次然後退出:
$ cat /usr/lib/systemd/system/sysstat.service #... elided ... [Service] Type=oneshot RemainAfterExit=yes User=root ExecStart=/usr/lib64/sa/sa1 --boot #... elided ...
…這解釋了為什麼沒有 PID——因為不再有程序。
systemd 服務的文件部分說:
oneshot 的行為類似於 simple;但是,預計該程序必須在 systemd 啟動後續單元之前退出。