Я хочу добиться этого:
если демон получает SIGHUP, затем снова запустите процесс (как дочерний) и убейте родителя.
Когда я запускаю его, первый раз работает:
> php test.php
> kill -HUP pid
> ps -ef |grep test.php
> result:... newPID test.php
Проблема в том, что если сейчас я убиваю дочерний процесс, функция не срабатывает
> kill -HUP newPID
> ps -ef |grep test.php
> result: ... newPID(the same) test.php
код:
test.php:
<?php
declare(ticks = 1);
$mypid = posix_getpid();
function sig_handler()
{
Global $mypid;
echo "Received sighup, we need to reload ourselves now \n";
echo "mypid:$mypid \n";
system("(php test.php)>/dev/null &");
posix_kill($mypid,9);
}
pcntl_signal(SIGHUP, "sig_handler");
sleep(500);
?>
Этот код работает на PHP 5.2.9, но не на PHP 5.3.5. Есть ли способ заставить его работать и на этой версии?
Спасибо!
Ronny