濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > PHP程序守護(hù)進(jìn)程化實(shí)現(xiàn)方法詳解

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

熱門(mén)標(biāo)簽:如何在世界地圖標(biāo)注 梧州市機(jī)器人外呼系統(tǒng)怎么樣 電子地圖標(biāo)注怎么修改 菏澤語(yǔ)音外呼系統(tǒng)運(yùn)營(yíng)商 廈門(mén)400電話辦理選易號(hào)網(wǎng) 臨沂crm外呼系統(tǒng)平臺(tái) 天客通地圖標(biāo)注 地圖標(biāo)注符號(hào)樣式有 公司外呼系統(tǒng)中心

一般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

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)用戶(hù)退出終端時(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) {
    //讓由用戶(hù)啟動(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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PHP如何限制定時(shí)任務(wù)的進(jìn)程數(shù)量
  • PHP基于進(jìn)程控制函數(shù)實(shí)現(xiàn)多線程
  • 一文看懂PHP進(jìn)程管理器php-fpm
  • php多進(jìn)程中的阻塞與非阻塞操作實(shí)例分析
  • php多進(jìn)程并發(fā)編程防止出現(xiàn)僵尸進(jìn)程的方法分析
  • 淺談PHP進(jìn)程管理
  • PHP多進(jìn)程通信-消息隊(duì)列使用
  • php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問(wèn)題小結(jié)
  • 淺談并發(fā)處理PHP進(jìn)程間通信之外部介質(zhì)

標(biāo)簽:雞西 瀘州 迪慶 黃石 貴陽(yáng) 郴州 綿陽(yáng) 白城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP程序守護(hù)進(jìn)程化實(shí)現(xiàn)方法詳解》,本文關(guān)鍵詞  PHP,程序,守護(hù),進(jìn)程,化,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP程序守護(hù)進(jìn)程化實(shí)現(xiàn)方法詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于PHP程序守護(hù)進(jìn)程化實(shí)現(xiàn)方法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    巴彦县| 西林县| 阜宁县| 烟台市| 大英县| 温宿县| 安平县| 杭锦后旗| 秦皇岛市| 邢台县| 潮安县| 新泰市| 介休市| 江陵县| 大洼县| 会东县| 修武县| 叶城县| 勃利县| 台前县| 龙门县| 金寨县| 阜南县| 竹溪县| 淮滨县| 神农架林区| 乌鲁木齐县| 高阳县| 五原县| 二连浩特市| 基隆市| 漳州市| 曲水县| 泸州市| 抚顺县| 广平县| 济南市| 凌海市| 乌拉特中旗| 克什克腾旗| 定结县|