Systemd

sysstat.service 的狀態顯示為活動(已退出)

  • November 28, 2018

當我看到的狀態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 啟動後續單元之前退出。

引用自:https://unix.stackexchange.com/questions/484720