ブラウザを介してPHPスクリプトを起動しましたが、ループエラーのためブラウザを閉じた後でもスクリプトは実行され続けます。スクリプトが私のログファイル(パスを知っている)にエラーメッセージを記録したので、これを見つけました。
私たちは多くの開発者とユーザーが使用するApacheサーバーを持っていますnmdev
。では、どのプロセスが実行されていて、ログファイルに書き込まれるのか、どうすればわかりますか?
ps -afe | grep php53
今日、次のような多くのプロセスを提供しました。
nmdev 26518 24151 0 11:51 ? 00:00:00 /opt/xxx/yyy/apache-php5/bin/httpd -k start
答え1
私の問題に対する解決策は、次を使用することです。
/sbin/fuser /path/to/logfile
これにより、ファイルに書き込むすべてのプロセスが提供されます。私はそれらすべてを慈悲なく殺しました。問題が解決しました。
答え2
lsof
以下を使用して、ファイルにアクセスするプロセスのPIDを見つけることができます。
[rhusar@rhusar ~]$ ps xafu | grep cat
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cat 5700 rhusar 1w REG 0,29 57 13154551 /tmp/abc
ただし、HTTPd自体を介してログを記録する場合は、HTTPdインスタンスのPIDのみを見ることができるようです。