0
デーモンとして動作するPHPスクリプトがあります。毎回、スクリプトが中断して、信号を受信したときにメモリ使用量をクリアするためにスクリプトを再開したい。PHPデーモンが自動的に再起動して失敗する
私はshell_exec()を見てきました。 PHPスクリプトを強制終了して再起動するのですが、より洗練された方法があるかどうかは疑問でした。また、バッチでPHPスクリプトをラップし、必要に応じて再起動する方法も見てきましたが、私はPHPに精通しています。
declare(ticks = 1);
$processID = pcntl_fork();
if ($processID == -1) {
echo "\n Error: The process failed to fork. \n";
} else if ($processID) {
exit;
} else {
}
if (posix_setsid() == -1) {
echo "\n Error: Unable to detach from the terminal window. \n";
}
$posixProcessID = posix_getpid();
$filePointer = fopen("/var/run/addy.pid" , "w");
fwrite($filePointer , $posixProcessID);
fclose($filePointer);
gc_enable();
while (true) {
sleep(1);
print "debug: memory_get_peak_usage: ".memory_get_peak_usage()." debug: memory_get_usage: ".memory_get_usage()."\n";
// STUFF GOES HERE
unset($array);
gc_collect_cycles();
}
ありがとうございました!
私はこれが唯一の答えであることを楽しんでいます、それは簡単で問題を解決し、コメントなしで、または提案された代替案を得ます。 – gravitron
私はあなたに同意します。私はこの答えが好きです。しかし、私は別のルートを行った! ps:私はこの答えに投票しませんでした。 – Bastien
私はあなたとは思っていませんでした、私は誰かが一緒にたどり着いて、 "psshがいかにエレガントで、bashスクリプトがループしているか"と言いました。シンプリシティはトリックです! – gravitron