サービスが再起動されたことを確認する方法はありますか?systemctl restart myunit.service
またはを実行すると、systemctl --user restart myunit.service
ログには自分のデバイスが停止して再起動されたことだけが表示されます。サービスが提供される時点をキャプチャする必要があります。再起動止まらず再起動しました。
また、停止と再開の間の時間を解決策として使用することはできません。サービスがすぐに停止しない場合があります。kill -9
サービス時間が10秒以上かかると、サービスユニットにタイムアウト設定が組み込まれます。
ユーザーがそれを実行したのでrestart
はなく、すばやく実行したことを確認する方法が必要ですstop
。start
どうすればいいですか?
答え1
journalctl -o verbose
JOB_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
。デバイスを手動でstop
ping して ping すると、start
s は他のstop
項目だけが生成されます。start
JOB_ID