kubuntuシステムにデーモンをインストールしました。このデーモンは、不明な場所で特定の構成ファイルを見つけようとします。設定ファイルへのシンボリックリンクでファイルシステムを散らかしていっぱいにしましたが、それでも「ファイルが見つかりません」と文句を言います。
私が書くことができるコマンドはありますか?ハードドライブ上の存在しないファイルにアクセスするすべての試みを記録するので、ファイルを探す場所を見つけることができますか?
kubuntuシステムにデーモンをインストールしました。このデーモンは、不明な場所で特定の構成ファイルを見つけようとします。設定ファイルへのシンボリックリンクでファイルシステムを散らかしていっぱいにしましたが、それでも「ファイルが見つかりません」と文句を言います。
私が書くことができるコマンドはありますか?ハードドライブ上の存在しないファイルにアクセスするすべての試みを記録するので、ファイルを探す場所を見つけることができますか?
回答:
PIDがわかっている場合は、プロセスでstraceを使用できます。
strace -f -p 123 | tee testoutput.txt
(123のPIDを想定)。「-f」は「フォローフォーク」(簡単に言うと)の略で、「-p」は「PIDが続く」という意味です。詳細man strace
を参照してください。要するに、straceは、プロセスがファイルを開く、読み取り、書き込みなどで試行するすべてのアクションを追跡します。最良の方法は、分析のために出力をファイルにリダイレクトすることです。私の例では、これをTにパイピングして、コンソールに表示される出力と指定されたファイルに書き込まれる出力を分割します。
出力で、次のようなものを探します
read(51, 0x7f287a7b36f0, 4096) = -1 EAGAIN (Resource temporarily unavailable)
(ええ、それは間違ったエラーです-しかし、私は今のところ見つけることができます)-したがって、read
括弧内に何かが続き、次にいくつかのスペースの後に「=」と負の数(=エラー)が続きます。不足しているファイルを示す「ENOTFOUND」のようなものを見つける必要があると思います(正確なエラーコードはわかりません)。