システムデバイスがどれくらいの期間実行されていますか?

システムデバイスがどれくらいの期間実行されていますか?

ブーツの後ろに自分のコンピュータを一覧表示できますjournalctl --list-boots。出力は次のとおりです。

 -4 21b1318cbaf04732b95ed0a5e40f6698 Tue 2019-06-25 17:26:53 CEST—Fri 2019-07-05 17:11:31 CEST
 -3 02d30049fdef4a809122f499ef95d122 Fri 2019-07-05 17:12:33 CEST—Wed 2019-08-14 10:23:47 CEST
 -2 aedc9088bd0a4a9588c387e593c9cc25 Wed 2019-08-14 10:24:41 CEST—Fri 2019-09-20 16:28:12 CEST
 -1 e40c23b16b86400292b7da77f03f677f Fri 2019-09-20 16:29:03 CEST—Mon 2019-10-07 16:31:20 CEST
  0 973dc1142add4a249e784c1a68fac31a Mon 2019-10-07 16:32:11 CEST—Tue 2019-10-15 12:12:22 CEST

そのため、コンピュータがいつ起動し、いつ終了するかを調べるために使用できます。

単一のシステムユニット(私の場合は.service)に同じ情報が必要です。しかし、私はこの情報を取得する方法を見つけることができませんでした。明らかなjournalctl -u foo.service戻り行は次のとおりです。

Oct 10 00:00:01 localhost systemd[1]: Started foo service.
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:11:22 localhost foo[19382]: some foo output
Oct 10 12:00:01 localhost systemd[1]: Started foo service.
...

これにより、サービスが00:00:01に開始され、12:00:01に再起動されたことがわかりますが、正確にどのくらいの期間実行されたかはわかりません(少なくとも00:11:22まで実行されたというだけです)。 。

背景:過去にサービス(私の場合はバックアップスクリプト)に時間がかかったかどうかを知りたいです。

ベストアンサー1

私の考えではsystemd-analyze 可能答えですが、そうではありません。

一つあるたくさんできそうですが、「どれくらいの時間がかかりますか」というよりは、「サービスを始めるのにどれくらいかかりますか」がより重要な機能です。~のため後者はおそらくその機能ではないsystemd-analyze plot > plot.svgでしょう。がブレークポイントで完了することを意味するかどうかはわかりません)または同じ実行で断続的に実行されるプロセスをサポートすることです。

幸いなことに、関心のあるサービスは独自のものであるため、これを変更してjournalctl -u foo.serviceログファイルを読み書きできる「Started@」および「Finished@」メッセージを追加できます。

ただし、変更したくない一般サービスの場合は、別の回答が必要です。

おすすめ記事