特定のプロセスを追跡するためにtopを使用した比較的わかりやすいオプションはありますか?
理想的には、人間が読める値によってプロセスを識別することによって?例えばchrome
またはJava
。
言い換えると、topが提供するすべての一般的な情報を表示したいが、提供されたパラメーター(「chrome」または「Java」など)に結果をフィルターに掛けるために
単純にgrep
を使用できます:
NAME
grep, egrep, fgrep, rgrep - print lines matching a pattern
SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
DESCRIPTION
grep searches the named input FILEs (or standard input if no files are named, or if a single
hyphen-minus (-) is given as file name) for lines containing a match to the given PATTERN. By
default, grep prints the matching lines.
次のコマンドを実行して、必要な出力(ex-chrome)を取得します。
top | grep chrome
ここでは、パイプラインでgrep
を使用しています|
so top
&grep
run parallel; top
出力はgrep
(入力として)およびgrep chrome
chrome
が停止するまで、一致する行top
をフィルタリングします。
私の他の答え here から、あなたは次のようなことができます、
top -p `pgrep "Java"`
top -p `pgrep -d "," Java`
説明:
top -p pid1,pid2
:複数のプロセス情報を表示します。pidは,
で区切る必要がありますpgrep -d "," Java
:すべてのpidを出力しますJavaプログラム、pidはデフォルトで改行で区切られます。-d ","
を使用して,
で区切りますトップで必要。top: -p argument missing
のようなエラーが表示される場合は、Javaプログラムが実行されていない、つまりpgrepに出力がないことを意味します。
OpenBSD top
では、単に g フィルタリングするコマンド名を入力します。
top
の例: Ubuntu、プレス o と入力します。 COMMAND=chrome
は、COMMAND
と等しいchrome
列のエントリのみを表示します。
Ubuntuと同じtop
実装を使用するLinuxでは、top
マニュアルのウィンドウでのフィルタリングセクションを参照してください。
他の良い答えも提供されていますが、私はしばらく前に私がptopと名付けたスクリプトを作成しました。
#!/bin/sh
top -p $(pidof "$@" |sed s#\ #,#g) 2>/dev/null
if [ $? -ne 0 ]; then
echo No processes with the specified name\(s\) were found
fi
これは、指定された複数のプロセス名(ptop bash chrome
など)をサポートし、指定された名前のいずれかが実行されているプロセスがない場合に、より適切なエラーメッセージを提供します。
top
にとどまり、他のすべてのプロセスをコンテキストに表示したままにする場合は、L
を押してプロセスを検索できます。
Locate string chrome
これにより、名前にchrome
が含まれるプロセスが強調表示され、表示されます。使用する &
次の試合に進みます。
c
を押すと、プロセス名の表示と完全なコマンドの表示を切り替えることができます。
上部のフィルターを使用して、特定のプロセスを分離することもできます。 「O」を押すと、フィルタープロンプトが表示されます。次に、FIELD = valueの形式でフィルターを入力します。たとえば、すべてのtmuxプロセスをフィルタリングするには、次を使用します。
COMMAND=tmux
フィルターをリセットするには、「=」を使用します。トップマンページの「フィルタリング」というタイトルのセクションを参照してください。
追跡するプロセスのPIDがわかったら(ps auxw |grep your_process
を実行して)、バッチモードでtopを実行します。
top -b -n 1 -p 1234 | tail -n 1
1234はプロセスのPIDです。
このアプローチは追跡に適しています。名前にgrep
を使用するよりも安全で、より簡単で、使用するリソースが少なくなります。