1. 概要

Linuxには、OS自体に関する洞察を得るのに役立ついくつかの監視ツールが付属しています。 Procpsパッケージのpsユーティリティは、OSの現在のプロセスに関するいくつかの統計を報告できるツールの1つです。

このチュートリアルでは、psユーティリティを使用して特定のプロセスの稼働時間を見つける方法を説明します。

2. プロセス稼働時間

特定のLinux(またはMac)プロセスが実行されている時間を確認するために、プロセスIDがすでにわかっていると仮定して、Bashシェルに次のコマンドを入力できます。

>> ps -p <process_id> -o etime

コマンドを分解してみましょう:

  • ps は、オペレーティングシステムの現在のプロセスのスナップショットを確認するのに役立ちます。 psは「プロセスステータス」の略です
  • 使用する -p オプションで、プロセスIDを指定できます。 たとえば、-p20または-p20 は、プロセスIDが20のプロセスを表します。
  • The -o 出力のカスタムフォーマットを指定しましょう。 あれは、 は、空白で区切られたリストまたはコンマで区切られたリストの形式の引数であり、個々の出力列を指定する方法を提供します。 ここでは、プロセスの経過時間を知るだけなので、 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およびhhパーツはオプションであるため、経過時間が1日未満または1時間未満の場合、出力には表示されません。

ELAPSED
21:51

このプロセスは21分51秒間実行されています。

4. カスタム列ヘッダー

前の例で見たように、 -o etime オプションは、ELAPSEDという名前の列ヘッダーの下に経過時間を出力します。 このヘッダーの名前は、 -o etime = 構文:

>> 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によって生成される出力をカスタマイズする方法に焦点を当てて学習しました。