婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP程序守護進程化實現方法詳解

PHP程序守護進程化實現方法詳解

熱門標簽:如何在世界地圖標注 梧州市機器人外呼系統怎么樣 電子地圖標注怎么修改 菏澤語音外呼系統運營商 廈門400電話辦理選易號網 臨沂crm外呼系統平臺 天客通地圖標注 地圖標注符號樣式有 公司外呼系統中心

一般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 ,這樣執行程序雖然也是轉為后臺運行,實際上是依賴終端的,當用戶退出終端時進程就會被殺掉。

二、使用PHP代碼來實現

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

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

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

用上面代碼即可實現守護進程化,當你的PHP程序需要轉為后臺運行時,只需要調用一次封裝好的函數daemonize()即可。
注:這里沒有實現標準輸入輸出的重定向。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

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

標簽:雞西 瀘州 迪慶 黃石 貴陽 郴州 綿陽 白城

巨人網絡通訊聲明:本文標題《PHP程序守護進程化實現方法詳解》,本文關鍵詞  PHP,程序,守護,進程,化,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP程序守護進程化實現方法詳解》相關的同類信息!
  • 本頁收集關于PHP程序守護進程化實現方法詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 都匀市| 德昌县| 东海县| 科尔| 内乡县| 绍兴市| 富源县| 玛沁县| 景宁| 格尔木市| 仪陇县| 浦北县| 古蔺县| 高淳县| 连平县| 纳雍县| 襄城县| 曲阜市| 深水埗区| 馆陶县| 专栏| 班玛县| 磐石市| 清水河县| 北辰区| 淮滨县| 泰州市| 苗栗县| 大新县| 当涂县| 即墨市| 宕昌县| 宽甸| 依安县| 梨树县| 灯塔市| 九台市| 曲沃县| 贡嘎县| 永顺县| 禹城市|