web-dev-qa-db-ja.com

特定のプロセスを一番上に表示する方法

特定のプロセスを追跡するためにtopを使用した比較的わかりやすいオプションはありますか?
理想的には、人間が読める値によってプロセスを識別することによって?例えばchromeまたはJava

言い換えると、topが提供するすべての一般的な情報を表示したいが、提供されたパラメーター(「chrome」または「Java」など)に結果をフィルターに掛けるために

54
Michael Coleman

単純に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 topgrep run parallel; top出力はgrep(入力として)およびgrep chromechromeが停止するまで、一致する行topをフィルタリングします。

31
Pandya

私の他の答え here から、あなたは次のようなことができます、

top -p `pgrep "Java"`
40
Ramesh
top -p `pgrep -d "," Java`

説明:

  1. top -p pid1,pid2:複数のプロセス情報を表示します。pidは,で区切る必要があります
  2. pgrep -d "," Java:すべてのpidを出力しますJavaプログラム、pidはデフォルトで改行で区切られます。-d ","を使用して,で区切りますトップで必要。

top: -p argument missingのようなエラーが表示される場合は、Javaプログラムが実行されていない、つまりpgrepに出力がないことを意味します。

23
Mingjiang Shi

OpenBSD topでは、単に g フィルタリングするコマンド名を入力します。

topの例: Ubuntu、プレス o と入力します。 COMMAND=chromeは、COMMANDと等しいchrome列のエントリのみを表示します。

Ubuntuと同じtop実装を使用するLinuxでは、topマニュアルのウィンドウでのフィルタリングセクションを参照してください。

16
Kusalananda

他の良い答えも提供されていますが、私はしばらく前に私が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など)をサポートし、指定された名前のいずれかが実行されているプロセスがない場合に、より適切なエラーメッセージを提供します。

7
Marcelo

topにとどまり、他のすべてのプロセスをコンテキストに表示したままにする場合は、Lを押してプロセスを検索できます。

Locate string chrome

これにより、名前にchromeが含まれるプロセスが強調表示され、表示されます。使用する &次の試合に進みます。

cを押すと、プロセス名の表示と完全なコマンドの表示を切り替えることができます。

4
jonatan

上部のフィルターを使用して、特定のプロセスを分離することもできます。 「O」を押すと、フィルタープロンプトが表示されます。次に、FIELD = valueの形式でフィルターを入力します。たとえば、すべてのtmuxプロセスをフィルタリングするには、次を使用します。

COMMAND=tmux

フィルターをリセットするには、「=」を使用します。トップマンページの「フィルタリング」というタイトルのセクションを参照してください。

1
Gearoid Murphy

追跡するプロセスのPIDがわかったら(ps auxw |grep your_processを実行して)、バッチモードでtopを実行します。

top -b -n 1 -p 1234 | tail -n 1

1234はプロセスのPIDです。

このアプローチは追跡に適しています。名前にgrepを使用するよりも安全で、より簡単で、使用するリソースが少なくなります。

0
Ben Shomer