web-dev-qa-db-ja.com

Linuxと同等のプロセスモニター?

GUIまたはCUIに関係なく、Unix/Linuxで Process Monitor に相当するものはありますか?

それが違いを生むなら、私はUbuntuを調べていますが、他のシステム(Mac、Fedoraなどの他のLinuxバリアントなど)に同等のものがある場合は、それらのどれかを知っていることも役に立ちます。

編集:

プロセスMonitorは、システムコール(ファイルの作成や書き込みなど)を監視するためのものですが、プロセスExplorerは、プロセスの状態を監視するためのものです(システムモニターのようなものです)。後者ではなく前者を求めています。 :-)

28
user541686

これのコンソールスタンバイはtopですが、私のお気に入りのhtopのような代替手段があり、表示の柔軟性を高め、プロセスでさらにいくつかの操作を実行できます。

スクリプトでの使用に適した対話性の低いビューは、psプログラムとそのすべての親戚です。

編集:明確な質問に基づいて、straceは、すべての読み取り/書き込み操作とos関数呼び出しを含む、特定のプロセスによって行われたシステムコールの監視を処理します。実行するプロセスに追跡またはアタッチしたいプログラムを実行する前に、コマンドラインでアクティブにすることができます。 shtopで選択されたプロセス。

12
Caleb

すべてのプロセスモニターの祖先は top であり、多くのシステム監視ツールはtopと呼ばれます。たとえば、ディスクI/Oを監視するには iotop 、システムリソースの束には atop があります powertop 消費電力。

より詳細な情報が必要な場合、デフォルトでは追跡されません。 特定のプロセスが何をしているのかを監視するには、そのプロセスに対して strace を呼び出します。たとえば、ファイルシステムへのアクセスのみに関心がある場合:

strace -s9999 -efile command_name    # trace a program during its whole execution
strace -s9999 -efile -p1234          # trace a running program with the given PID

straceはLinuxに固有ですが、他のシステムにも同様のツールがあります。Solarisではtruss、* BSDではktraceまたはdtraceなどです。

特定のファイルまたは特定のディレクトリまたはディレクトリツリーで何が起こっているかを監視するには、 inotify機能 を使用します。

inotifywait -m .

繰り返しになりますが、この機能はLinuxに固有のものですが、他のほとんどのuniceには同様のシステムがあります。 kqueue * BSDの場合、および [〜#〜] fam [〜#〜] (当初はSGIからでしたが、現在多くのシステムでAPIとして利用可能です)。

Linuxですべてのシステムコールを監視するには、 監査サブシステム を使用できます。それは比較的最近のものであり、このトピックに関する文献はあまりありません。 auditctlを検索するか、 auditctlのマニュアルページ をお読みください。このサイトにはいくつかの例があります: ファイルアクセスの追跡プロセス実行の追跡

lsofstraceをご覧ください。 SysinternalのProcess Monitorは、実際にはFilemonとRegmonをいくつかの追加の拡張機能と組み合わせたものです。 topコマンドは、Process Explorerに似ています。

9
Omega

あなたはおそらく sysdig を探しています

例えば:

sysdig -A -c echo_fds
4
Singlet

私はこれに答えるのが本当に遅いですが、私はあなたが探しているものを正確に行うことを目的としたプロジェクトを始めました。ここでそれを見てください: https://github.com/alexandernst/monks

3
alexandernst

私はそのProcess Monitorを使用していませんが、わかる限り、Gnomeシステムのgnome-system-monitorと同じです。 KDEを使用している場合は、おそらく似たようなものがあります。

2
Keith

dtrace4linuxを使用すると、カーネルの興味深い情報をトレースできます。 sysdigより強力であるように見えますが、残念ながらそれほどうまく動作していません。

1
Rui F Ribeiro