当我看到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。
问题是,为什么会发生这种事?
发布于 2018-11-28 17:22:37
你的假设是错误的。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 --因为没有进程了。
系统服务文件%d在一定程度上说:
oneshot的行为类似于简单;但是,在systemd启动后续单元之前,进程必须退出。
https://unix.stackexchange.com/questions/484720
复制相似问题