中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現PHP程序守護進程化

發布時間:2021-03-05 16:59:40 來源:億速云 閱讀:308 作者:TREX 欄目:開發技術

這篇文章主要講解了“如何實現PHP程序守護進程化”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何實現PHP程序守護進程化”吧!

一般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程序守護進程化這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

神农架林区| 女性| 开封县| 富阳市| 滕州市| 惠安县| 彰武县| 改则县| 盐亭县| 济南市| 清水河县| 奉节县| 安丘市| 霍山县| 五常市| 汤阴县| 舟曲县| 柳河县| 丘北县| 多伦县| 陇川县| 皋兰县| 龙游县| 遂平县| 巩义市| 四会市| 璧山县| 鹤峰县| 德清县| 郯城县| 平谷区| 庆阳市| 津市市| 安泽县| 紫阳县| 湖北省| 三河市| 格尔木市| 翁源县| 大宁县| 鄱阳县|