守護程序(daemon)是一種特殊的程序,它的生命週期很長,它在後台執行並且沒有控制終端(這樣可以保證守護程序不會接收到各種來自終端的訊號)。
比如:crontab、sshd、nginx等,都會使用守護程序的形式執行,確保可以一直正常的提供服務。
/**
* daemon(守護程序) php實現
* @author zhjx922
*/$pid = pcntl_fork();
if ($pid == -1) else if ($pid)
//setsid
posix_setsid();
echo "成功輸出,脫離終端" . php_eol;
sleep(5);
$pid = pcntl_fork();
if ($pid == -1) else if ($pid)
echo "依然可以輸出" . php_eol;
sleep(5);
//關閉各種描述符
@fclose(stdout);
@fclose(stderr);
$stdout = fopen('/dev/null', "a");
$stderr = fopen('/dev/null', "a");
chdir('/');
umask(0);
echo "這裡不會輸出, ps aux | grep daemon.php 檢視程序,20s後退出" . php_eol;
sleep(20);
守護程序之守護程序的慣例
在unix系統中,守護程序遵循下列公共慣例 例項 程式清單13 3所示程式說明了守護程序可以重讀其配置檔案的一種方法。該程式使用sigwait以及多執行緒 可參考 程式清單13 3 守護程序重讀配置檔案 include apue.h include include sigset t mask ext...
守護程序之單例項守護程序
為了正常執行,某些守護程序實現為單例項的,也就是在任一時刻只執行該守護程序的乙個副本。例如,該守護程序可能需要排它地訪問乙個裝置。在cron守護程序情況下,如果同時有多個例項執行,那麼每個副本都可能試圖開始某個預定的操作,於是造成該操作的重複執行,這很可能導致出錯。如果守護程序需要訪問一裝置,而該裝...
php 守護程序的實現
1 php沒有執行在安全模式,關掉安全模式,即 safe mode off 2 禁用函式列表 disable functions exec,system,shell exec,proc open,popen,一般來說,exec 這些函式為了安全,都會禁用,在php.ini裡面把這些禁用的函式放出來。...