プロセスがアクセスしているファイルを特定する


9

特定のプロセスがアクセスするすべてのファイルをどのように見つけますか?

私はUbuntu 9.04を使用しています。

回答:


11

lsofは、開いているファイルと関連するプロセスIDをリストします。オプションが指定されていない場合は、すべてがリストされます。

-p単一のプロセスで開いているファイルを一覧表示するオプションがあります。したがって、PID 6714のプロセスの場合、これはそのプロセスによって開かれたファイルをリストします。

    lsof -p 6714

通常のファイルのみを一覧表示するには、grepを使用してlsofの出力をフィルタリングできます。

    lsof -p 6714 | grep REG

grepよりも堅牢にする必要がある場合は、この-Fオプションを使用できますが、さらに複雑になります。以下からのlsof manページ

-Fオプションを指定すると、lsofは、awkやPerlスクリプト、Cプログラムなど、別のプログラムによる処理に適した出力を生成します。

要件によって異なります。


1
lsofに「-b」を追加したいのですが、少し速くなります。また、grepへのパイプの前に2> / dev / nullを追加します。
kbyrd 2010年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.