Linuxプロセスの実行時間

1. 概要

Linuxには、OS自体についての洞察を得るのに役立つ少数の監視ツールが付属しています。 https://gitlab.com/procps-ng/procps[Procps]パッケージの__ps __utilityは、OSの現在のプロセスに関する統計情報を報告できるツールの1つです。
このチュートリアルでは、__ps ___utilityを使用して特定のプロセスの稼働時間を見つける方法を確認します。

2. プロセス稼働時間

*特定のLinux(またはMac)プロセスが実行されている時間を確認するには、プロセスIDを既に知っていると仮定して、Bashシェルで次のコマンドを入力します。
>> ps -p <process_id> -o etime
コマンドを分解しましょう:
  • http://man7.org/linux/man-pages/man1/ps.1.html [ps] を参照してください
    オペレーティングシステムの現在のプロセスのスナップショット。 ps _は「プロセスステータス」を表します

  • – p <process_id> optionを使用して、プロセスIDを指定できます。 For
    たとえば、– p20または-p 20 は、プロセスIDが20のプロセスを表します

  • – o <format> _では、出力のカスタム形式を指定できます。
    *つまり、< format> は、空白で区切られたリストまたはコンマで区切られたリスト形式の引数であり、個々の出力列を指定する方法を提供します。*ここでは、プロセスの経過時間について説明します。したがって、etime を単一の出力列として使用しています。 ちなみに、etime は「経過時間」の略です。

    たとえば、プロセスID 1に対して上記のコマンドを実行すると:
>> ps -p 1 -o etime
プロセスの経過時間を取得します。
ELAPSED
03:24:30
この特定のプロセスは、3時間24分30秒実行されています。 *経過時間を秒単位で表示するには、_etime_ *の代わりに_etimes_を使用しましょう:
>> ps -p 1 -o etimes
ELAPSED
12270
Macでは__etimes ___オプションを使用できないことに注意してください。

3. 経過出力フォーマット

デフォルトでは、* __ etime ___は、プロセスが開始されてからの経過時間を* ** [[DD-] hh:] mm:ss形式で表します。 **たとえば、20日間実行されているプロセスの場合、経過時間の出力は次のようになります。
ELAPSED
20-11:59:45
__DD __and _hh_部分はオプションであるため、経過時間が1日未満または1時間未満の場合、出力に表示されません。
ELAPSED
21:51
このプロセスは21分51秒間実行されています。

4. カスタム列ヘッダー

前の例で見たように、__- o etime ___optionはELAPSEDという名前の列ヘッダーの下に経過時間を出力します。 header __- o etime = <header_name> ___syntaxを使用して、このヘッダーの名前を変更できます。
>> ps -p 1 -o etime=Uptime
Uptime
03:24:30
また、ヘッダーを完全に削除することもできます。
>> ps -p 1 -o etime=
03:24:30
_etimes:_についても同様です
>> ps -p 1 -o etimes=
12270
これは、*スクリプトを作成する*ときに便利であり、数値の出力のみが重要です。

5. 結論

このチュートリアルでは、_ps_コマンドラインユーティリティを使用して、特定のプロセスの実行時間を調べました。
また、_ps_によって生成された出力をカスタマイズする方法にも注目し、学習しました。