systemctl/journal は、サービスが再起動されたか、停止され、開始されたかを区別します。

systemctl/journal は、サービスが再起動されたか、停止され、開始されたかを区別します。

サービスが再起動されたことを確認する方法はありますか?systemctl restart myunit.serviceまたはを実行すると、systemctl --user restart myunit.serviceログには自分のデバイスが停止して再起動されたことだけが表示されます。サービスが提供される時点をキャプチャする必要があります。再起動止まらず再起動しました。

また、停止と再開の間の時間を解決策として使用することはできません。サービスがすぐに停止しない場合があります。kill -9サービス時間が10秒以上かかると、サービスユニットにタイムアウト設定が組み込まれます。

ユーザーがそれを実行したのでrestartはなく、すばやく実行したことを確認する方法が必要ですstopstart

どうすればいいですか?

答え1

journalctl -o verboseJOB_TYPEに設定されたフィールドが含まれますrestart。 systemdドキュメントにこのフィールドが見つかりませんが、https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_systems_using_the_rhel_8_web_console/reviewing-logs_system-management-using-the-rhel-8-web-consoleそれを言及した:

2020年10月22日の真夜中以降に発生した「systemd」で識別されたすべてのログメッセージをフィルタリングし、ログフィールド「JOB_TYPE」が「start」または「restart」です。

journalctl -u irqbalance -o verbose次の後のサンプル項目systemctl restart irqbalance:

    JOB_TYPE=stop
    JOB_ID=3667
    INVOCATION_ID=14f864c9297247f286c8e7e07a09c40e
    UNIT=irqbalance.service
    MESSAGE=Stopping irqbalance daemon...
Mon 2022-03-14 20:26:45.263497 CET [...]
    UNIT=irqbalance.service
    JOB_TYPE=restart
    JOB_ID=3667
    MESSAGE=Stopped irqbalance daemon.
Mon 2022-03-14 20:26:45.264912 CET [...]
   JOB_TYPE=start
   JOB_RESULT=done
   UNIT=irqbalance.service
   JOB_ID=3667

前述のように、これは文書化されていないようですが、デバイスを再起動すると、同じタグを持つすべてのエントリが作成されますJOB_ID。デバイスを手動でstopping して ping すると、starts は他のstop項目だけが生成されます。startJOB_ID

関連情報