すべてのプロセス モニターの祖父は top
です 、および多くのシステム監視ツールは top
と呼ばれます .たとえば、iotop
があります ディスク I/O を監視するには、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 に固有のものですが、他のシステムにも同様のツールがあります:truss
Solaris では、ktrace
または dtrace
*BSD などで
特定のファイルに何が起こっているかを監視するには または、特定のディレクトリまたはディレクトリ ツリーで、inotify 機能を使用します。
inotifywait -m .
繰り返しになりますが、この機能は Linux に固有のものですが、他のほとんどの unice には同様のシステムがあります。 *BSD での kqueue、および FAM (元々は SGI からのものでしたが、現在は多くのシステムで API として利用できます)。
すべてのシステム コールを監視するには Linux では、監査サブシステムを使用できます。比較的最近のもので、このトピックに関する文献はあまりありません。 auditctl
を検索 または auditctl
を読む マンページ。このサイトには、ファイル アクセスの追跡、プロセス実行の追跡などの例がいくつかあります。
このためのコンソール スタンバイは top
です 、しかし私のお気に入りの htop
のような代替手段があります これにより、表示の柔軟性が少し向上し、プロセスでさらにいくつかの操作が可能になります。
スクリプトでの使用に適した、インタラクティブ性の低いビューは ps
です。 プログラムとそのすべての親戚.
編集: あなたの明確な質問に基づいて、あなたは strace
に気付くかもしれません すべての読み取り/書き込み操作と os 関数呼び出しを含む、特定のプロセスによって行われたシステム呼び出しの監視を処理します。 s を押すことで、追跡したいプログラムや実行中のプロセスにアタッチしたいプログラムの前に、コマンド ラインでアクティブ化できます。 htop
で選択されたプロセス .
lsof
をご覧ください。 と strace
. Sysinternal の Process Monitor は、実際には Filemon と Regmon にいくつかの機能拡張を組み合わせたものです。 top
コマンドは Process Explorer に似ています。