私はapache2/PHPを実行しているDebianサーバを持っています。このウェブサイトから、私は時間の経過とともに多くのPythonスクリプトを実行できます。私は彼らが積み重ならないように一定の時間の後にこれらのスクリプトを殺すことができるようにしたい。 pythonスクリプトはwww-dataによって所有されています。www-dataプロセスを強制終了するにはどうすればよいですか?
私は、PIDと実行のタイムスタンプを保存し、これらのすべてをループして、指定された時間より古いものを見つけることによって、Pythonスクリプトを強制終了しようとしました。
for($x = 0; $x < $arraylen; $x++) {
if (round(microtime(true)) - $timearray[$x] > 60){
$command = "kill -9 " . $pidarray[$x];
$killme = exec($command);
}
}
私はこれを使用してPIDをつかむ:
$PID = shell_exec('/usr/bin/python2.7 /var/www/worker.py ......');
私はPHPは、これらのプロセスを殺すために取得するように見えることはできません。しかし、私はプロセスのPIDを知っていれば、私は罰金
sudo su www-data
kill "PID of the process"
を作品の端末にこれを入力することができますどのように私はPHPは、独自のプロセスのうちの1つを殺すために得るのですか?
ユーザwww-dataは、たとえそれが自分の子供であっても、他のプロセスを殺す権利をもっていない可能性が非常に高いです。しかし、私はむしろ、ハングしたプロセスを殺すためにウェブプロセスよりもcron-jobを使うと思うので、アクセス権があるならrootとして実行することができます。私はさらに、ここでlinux/unix-speficic SEと話すことをお勧めします。 – syck