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

PHP程序守護(hù)進(jìn)程化實(shí)現(xiàn)方法詳解

 更新時(shí)間:2020年07月16日 15:22:36   作者:網(wǎng)絡(luò)蟲  
這篇文章主要介紹了PHP程序守護(hù)進(jìn)程化實(shí)現(xiàn)方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一般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)容參見man daemon。PHP中暫時(shí)沒有此函數(shù),當(dāng)然如果你有興趣的話,可以寫一個(gè)PHP的擴(kuò)展函數(shù)來(lái)實(shí)現(xiàn)。

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

一 、使用nohup

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í)際上是依賴終端的,當(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()即可。
注:這里沒有實(shí)現(xiàn)標(biāo)準(zhǔn)輸入輸出的重定向。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

渭源县| 武威市| 临清市| 天台县| 府谷县| 巴彦淖尔市| 永兴县| 桑植县| 清原| 平湖市| 花垣县| 西平县| 云霄县| 京山县| 定陶县| 五常市| 贺兰县| 吉隆县| 金堂县| 安化县| 石家庄市| 长乐市| 拉萨市| 泰兴市| 吉安市| 达州市| 永吉县| 长顺县| 九寨沟县| 新野县| 定州市| 安丘市| 天水市| 宁陵县| 安泽县| 九寨沟县| 明水县| 蕉岭县| 额济纳旗| 蓝山县| 盐山县|