Topの具体的なプロセスを確認する方法

Topの具体的なプロセスを確認する方法

先頭へ戻る 特定のプロセスを追跡する比較的簡単なオプションはありますか?
理想的には、人間が読める値でプロセスを識別しますか?たとえば、chromeまたはjava

つまり、上部に提供されているすべての一般的な情報を表示したいのですが、結果は提供されたパラメータでフィルタリングされます。 「クロム」または「Java」

答え1

私のもう一つの答えここ、次のことができます。

top -p `pgrep "java"`

答え2

あなたは単に使用することができます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パイプを使用|するためtop、出力を(入力で)並列grepに実行し、停止するまで一致する行をフィルタリングします。topgrepgrep chromechrometop

答え3

top -p `pgrep -d "," java`

説明する:

  1. top -p pid1,pid2:PIDをカンマで区切って複数のプロセス情報を表示します。,
  2. pgrep -d "," java:すべてのJavaプログラムのpidを印刷します。 pidはデフォルトで改行文字で区切られます。上部の要件に応じて-d ","取り外して使用してください。,

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

答え4

他にも良い回答もありましたが、しばらく前にスクリプトを作成し、名前を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:)の指定をサポートし、指定された名前のプロセスが実行されていないときにより良いエラーメッセージを提供します。

関連情報