![systemctl status 如何显示错误的 Active 值?](https://linux22.com/image/197624/systemctl%20status%20%E5%A6%82%E4%BD%95%E6%98%BE%E7%A4%BA%E9%94%99%E8%AF%AF%E7%9A%84%20Active%20%E5%80%BC%EF%BC%9F.png)
我使用的是centos 8操作系统。我有一个在启动时启动 tomcat 的服务。并且报告了一个bug,更新后触发重启,tomcat还没有启动(系统重启了)。的结果
systemctl status {service.name}
曾是
Loaded: loaded (/etc/systemd/system/{service.name}; enabled; vendor preset: disabled)
Active: active (running) since Sat 2021-10-02 18:42:21 EEST; 2 weeks 3 days ago
这里的问题是它显示“活动”:2周3天前,重启后不久。通过重新启动服务即可轻松解决该问题。
但我仍然无法重现它并理解它怎么可能。
我尝试通过手动创建/var/log/journal
文件夹并journalctl -u {service.name}
显示前后日志来启用 systemd 日志日志的持久存储-- Reboot --
,但结果是
systemctl status {service.name}
仍计算自上次服务启动以来的时间。
那么有人知道什么可能导致Active: active (running)
过时并显示错误的状态吗? (因为服务不应显示错误的时间和活动状态)。谢谢
另外最后的服务启动时间systemctl status {service.name}
是两周前的,所以整个日志看起来已经过时了
更新服务
[Unit]
Description=Start tomcat service
After=network-online.target snmpd.service
Wants=network-online.target
Conflicts=tomcat-debug.service
[Service]
ExecStart=/opt/infrascale/stark-scripts/tomcat-start.sh
ExecStop=/opt/infrascale/stark-scripts/tomcat-stop.sh
StandardOutput=journal
StandardError=journal
Restart=always
Type=forking
[Install]
WantedBy=multi-user.target
目前看来,要么是人为错误,并且在重新启动之前获取了服务状态,要么可能是内核从 4.18 更新到 5.14 后 systemd 出现了一些问题