2013-12-16 74 views
0

我有一個簡單的PHP腳本是這樣的:什麼是默認Php對kill信號的響應?

<?php  

function doSomething() {  
    $f = fopen("something.txt","a+"); 
    fwrite($f, "Starting at " . date("H:i:s") . "\n"); 
    fclose($f); 
    while(true) { 
     // Do some stuff here 
    }  
} 

register_shutdown_function(function() { 
    $f = fopen("something.txt","a+"); 
    fwrite($f, "\nEnding at " . date("H:i:s") . "\n"); 
    fclose($f); 
}); 

?> 

當我守護進程與

daemon --start -name somename --pidfile=/var/run/somename.pid /usr/bin/run_something 

這個功能,然後我嘗試

daemon --stop -name somename --pidfile=/var/run/somename.pid 

它寫道:「在以[時間] 「但不是」在[時間]結束「

我在這裏做錯了什麼?

的通知「守護--stop」的文件說,它發送殺不殺-9

回答

3

register_shutdown_function

注意的文檔: 關機功能將不若執行該進程用SIGTERM或SIGKILL信號終止。雖然你不能攔截SIGKILL,但你可以使用pcntl_signal()來安裝SIGTERM的處理程序,它使用exit()來乾淨地結束。

+0

我會嘗試,併發送寫在這裏的反饋 – Shehabix

+0

感謝它幫了很多。 – Shehabix