systemctl status 如何显示错误的 Active 值?

systemctl status 如何显示错误的 Active 值?

我使用的是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 出现了一些问题

相关内容