PHP擴充套件程式實現守護程序

2022-10-06 10:42:18 字數 809 閱讀 1256

一般server程式都是執行在系統後台,這與普通的互動式命令列程式有很大的區別。glibc裡有乙個函式daemon。呼叫此函式,就可使當前程序脫離終端變成乙個守護程序,具體內容參見man daemon。php中暫時沒有此函式,當然如果你有興趣的話,程式設計客棧可以寫乙個php的擴充套件函式來實現。

php命令列程式實現守護程序化有2種方法:

一 、使用nohup

複製** **如下:

nohup php myprog.php > log.txt &

這裡就實現了守護程序化。

單獨執行 php myprog.php,當按下ctrl+c時就會中斷程式執行,會kill程式設計客棧當前程序以及子程序。

php myprog.php &,這樣執行程式雖然也是轉為後台執行,實際上是依賴終端的,當使用者退出終端時進bljlymyh程就會被殺掉。

二、使用php**來實現

function daemonize()

elseif ($pid > 0)

//建立乙個有別於終端的新session以脫離終端

posix_setsid();

$pid = pcntl_fork();

if ($pid == -1)

elseif ($pid > 0)

}daemon程式設計客棧ize();

sleep(1000);

用上面**即可實現守護程序化,當你的php程式需要轉為後台執行時,只需要呼叫一次程式設計客棧封裝好的函式daemonize()即可。

注:這裡沒有實現標準輸入輸出的重定向。

本文標題: php擴充套件程式實現守護程序

本文位址:

PHP程式守護程序化

php命令列程式實現守護程序化有2種方法 nohup php myprog.php log.txt 這裡就實現了守護程序化。單獨執行 php myprog.php,當按下ctrl c時就會中斷程式執行,會kill當前程序以及子程序。php myprog.php 這樣執行程式雖然也是轉為後台執行,實際...

PHP程式守護程序化

php命令列程式實現守護程序化有2種方法 nohup php myprog.php log.txt 這裡就實現了守護程序化。單獨執行 php myprog.php,當按下ctrl c時就會中斷程式執行,會kill當前程序以及子程序。php myprog.php 這樣執行程式雖然也是轉為後台執行,實際...

PHP程式守護程序化

php命令列程式實現守護程序化有2種方法 nohup php myprog.php log.txt 這裡就實現了守護程序化。單獨執行 php myprog.php,當按下ctrl c時就會中斷程式執行,會kill當前程序以及子程序。php myprog.php 這樣執行程式雖然也是轉為後台執行,實際...