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 出現了一些問題

相關內容