systemctl status が間違った Active 値を表示するのはなぜですか?

systemctl status が間違った Active 値を表示するのはなぜですか?

私は Centos 8 OS を使用しています。起動時に Tomcat を起動するサービスがあります。アップデート後に再起動をトリガーするバグが報告されましたが、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私は手動でフォルダを作成してsystemdジャーナルログの永続的なストレージを有効にしようとし、journalctl -u {service.name} 前後のログを表示しました-- Reboot -- が、結果は

systemctl status {service.name}

最後のサービス開始からの時間を計算します。

では、何が原因となっActive: active (running)て古くなったり、間違ったステータスが表示されたりするのか知っている人はいませんか? (サービスが間違った時間やアクティブ ステータスを表示してはならないため)。よろしくお願いします。

また、最後のサービス起動時間はsystemctl status {service.name}2週間前のものなので、ログ全体が古く見えます。

更新されたサービス

[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に何らかの問題が発生したかのどちらかのようです。

関連情報