最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP擴(kuò)展程序?qū)崿F(xiàn)守護(hù)進(jìn)程

 更新時(shí)間:2015年04月16日 10:47:04   投稿:hebedich  
守護(hù)進(jìn)程就是在后臺(tái)一直運(yùn)行的進(jìn)程。比如我們啟動(dòng)的httpd,mysqld等進(jìn)程都是常駐內(nèi)存內(nèi)運(yùn)行的程序。,下面我們就來(lái)探討下,如何使用php來(lái)實(shí)現(xiàn)守護(hù)進(jìn)程

一般Server程序都是運(yùn)行在系統(tǒng)后臺(tái),這與普通的交互式命令行程序有很大的區(qū)別。glibc里有一個(gè)函數(shù)daemon。調(diào)用此函數(shù),就可使當(dāng)前進(jìn)程脫離終端變成一個(gè)守護(hù)進(jìn)程,具體內(nèi)容參見(jiàn)man daemon。PHP中暫時(shí)沒(méi)有此函數(shù),當(dāng)然如果你有興趣的話,可以寫(xiě)一個(gè)PHP的擴(kuò)展函數(shù)來(lái)實(shí)現(xiàn)。

PHP命令行程序?qū)崿F(xiàn)守護(hù)進(jìn)程化有2種方法:

一 、使用nohup

復(fù)制代碼 代碼如下:

nohup php myprog.php > log.txt &

這里就實(shí)現(xiàn)了守護(hù)進(jìn)程化。

單獨(dú)執(zhí)行 php myprog.php,當(dāng)按下ctrl+c時(shí)就會(huì)中斷程序執(zhí)行,會(huì)kill當(dāng)前進(jìn)程以及子進(jìn)程。

php myprog.php &,這樣執(zhí)行程序雖然也是轉(zhuǎn)為后臺(tái)運(yùn)行,實(shí)際上是依賴(lài)終端的,當(dāng)用戶退出終端時(shí)進(jìn)程就會(huì)被殺掉。

二、使用PHP代碼來(lái)實(shí)現(xiàn)

function daemonize()
{
$pid = pcntl_fork();
if ($pid == -1)
{
die("fork(1) failed!\n");
}
elseif ($pid > 0)
{
//讓由用戶啟動(dòng)的進(jìn)程退出
exit(0);
}

//建立一個(gè)有別于終端的新session以脫離終端
posix_setsid();

$pid = pcntl_fork();
if ($pid == -1)
{
die("fork(2) failed!\n");
}
elseif ($pid > 0)
{
//父進(jìn)程退出, 剩下子進(jìn)程成為最終的獨(dú)立進(jìn)程
exit(0);
}
}

daemonize();
sleep(1000);

用上面代碼即可實(shí)現(xiàn)守護(hù)進(jìn)程化,當(dāng)你的PHP程序需要轉(zhuǎn)為后臺(tái)運(yùn)行時(shí),只需要調(diào)用一次封裝好的函數(shù)daemonize()即可。
注:這里沒(méi)有實(shí)現(xiàn)標(biāo)準(zhǔn)輸入輸出的重定向。

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

最新評(píng)論

永平县| 利辛县| 平乐县| 海安县| 固始县| 广宗县| 鹤庆县| 浪卡子县| 松江区| 北碚区| 岐山县| 元朗区| 务川| 太保市| 开鲁县| 河西区| 五家渠市| 沁阳市| 金湖县| 泊头市| 和硕县| 尉犁县| 德化县| 井陉县| 姚安县| 沈丘县| 瓦房店市| 翁牛特旗| 怀柔区| 柯坪县| 沅陵县| 峡江县| 探索| 罗定市| 曲沃县| 军事| 清远市| 林西县| 海安县| 郸城县| 自治县|