具体的には「何」
その理由は次のとおりです。 PIDがファイルのどこかに保存されていると確信するプロセスがありますが、どこにあるかはわかりません(そして見つけたいのですが)。私は/var/run/myproc.pid
そのpidなどを保存するために使用できるファイル名を見つけようとしましたが、これまでは成功しませんでした。検索してみたいただその番号。同様のツールからPIDを取得し、その内容がその番号に対応するファイルを検索したいとps -aux
思います。top
インターネット検索をしてみましたが、すべての回答には「何「…その中に何が入っているのか。何」
よろしくお願いします。
答え1
目的のテキストをファイルに配置し、cmp
各候補ファイルで実行します。
pgrep myproc >/tmp/the_pid
find /var -type f -size $(wc -c </tmp/the_pid)c -exec cmp -s /tmp/the_pid {} \; -print
strace -eopen
ただし、このユースケースでは、以下のプログラムを再起動するか、次を使用します。auditd
ルール:
auditctl -F "ppid=$$,a2&0x100" -S open
/path/to/daemon
答え2
grepに正規表現を渡すことができます。以下を試してください。 (PIDが67543であると仮定)
grep -R '^67543$' /
正規表現では、^
ニンジン(sp)記号は「文字列の始まり」を意味し、ドル$
記号は「文字列の終わり」を意味するため、上記の正規表現は「67543」文字列で始まり、終わるファイルのみを返します。
答え3
find searchtree -type f -size `stat -c%s needle`c | xargs -n1 diff -s needle
答え4
プログラムが起動時に起動しない場合、または他の多くのプログラムで起動される場合、pidfileはプロセスと同じくらい古く、1分以内です。
PIDを知っていれば、長さもわかりますので、検索するファイル数をさらに減らすことができます。
find -type f -mmin -1 -size 6c -exec grep 12345 {} \;
5ビットPIDの場合は、末尾の改行文字が含まれているため、サイズとして6cを使用します(コメントとしてysangkokを参照)。