GNU/Linux >> Linux の 問題 >  >> Linux

実行中のプロセスのウォールクロック時間を取得するにはどうすればよいですか?

実行中のプロセスでは、これを行うことができます:

PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime

一般的な機能として、シェル プロンプトを変更できます。これは私の bash プロンプトの定義です:

TERM_RED_START=$'\033[1m\033[31m'
TERM_RED_END=$'\033(B\033[m'
PS1='\nec:$(ec=$?; if [ 0 -eq $ec ];
then printf %-3d $ec;
else echo -n "$TERM_RED_START"; printf %-3d $ec; echo "$TERM_RED_END";
fi) \t  \[email protected]\h:\w\nstart cmd:> '
PS2="cont. cmd:> "

あなたに関連する部分は \t です

ただし、これですべての問題が解決するわけではありません。プロセスが終了すると新しいプロンプトが表示されますが、以前のプロンプトは、測定対象のコマンドが開始された時点でかなり古いものである可能性があります。したがって、長時間実行されるコマンドを開始する前にプロンプ​​トを更新することを忘れないでください。または、現在のプロセスにかかる時間を知りたい場合は、現在の時刻を覚えておく必要があります。

完全なソリューションには、監査機能 (プロセスの開始時刻と終了時刻を記録する機能) が必要です。ただし、シェルに制限できない場合、膨大な量のデータが発生する可能性があります。


受け入れられた回答に基づいて、 watch を使用して実行中のプロセスの経過時間を継続的に監視することもできます :

PID=5462
watch command ps -p "$PID" -o etime

Linux
  1. 実行中のプロセスの出力リダイレクトを変更するにはどうすればよいですか?

  2. 別のBashセッションで実行中のプロセスの出力を表示する方法は?

  3. Bashが実行されているTtyを取得する方法は?

  1. UNIX/Linux システムで実行中のプロセスにコマンドライン引数を渡す方法は?

  2. Linuxでキーボードの状態を取得するにはどうすればよいですか?

  3. nohupプロセスを強制終了するプロセスIDを取得するには?

  1. ターミナルで現在の日付と時刻を取得し、ターミナルでカスタム コマンドを設定するにはどうすればよいですか?

  2. maven を実行しているマシンの一時フォルダーを取得するにはどうすればよいですか?

  3. 実行中のプロセスの絶対パスを知るにはどうすればよいですか?