PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。我們為大家收集整理了關於PHP擴展程序,以方便大家參考。PHP命令行程序實現守護進程化有2種方法:
一 、使用nohup 複製代碼 代碼如下:
nohup php > &
這裏就實現了守護進程化。單獨執行 php ,當按下ctrl+c時就會中斷程序執行,會kill當前進程以及子進程。php &,這樣執行程序雖然也是轉為後台運行,實際上是依賴終端的`,當用户退出終端時進程就會被殺掉。
二、使用PHP代碼來實現1
30function daemonize()
{
$pid = pcntl_fork();
if ($pid == -1)
{
die("fork(1) failed!n");
}
elseif ($pid > 0)
{
//讓由用户啟動的進程退出
exit(0);
}
//建立一個有別於終端的新session以脱離終端
posix_setsid();
$pid = pcntl_fork();
if ($pid == -1)
{
die("fork(2) failed!n");
}
elseif ($pid > 0)
{
//父進程退出, 剩下子進程成為最終的獨立進程
exit(0);
}
}
daemonize();
sleep(1000);
用上面代碼即可實現守護進程化,當你的PHP程序需要轉為後台運行時,只需要調用一次封裝好的函數daemonize()即可。
注:這裏沒有實現標準輸入輸出的重定向。