sysstat.service 的状态显示活动(已退出)

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

你的假设是错误的。 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 启动后续单元之前退出。

相关内容