国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP進程中想要實現daemon化應該如何操作

2020-03-22 19:21:20
字體:
來源:轉載
供稿:網友
  •   相信大家對于daemon都并不陌生了,作為一款可以在后臺進行運行的特殊教程它還是非常受歡迎的。但是有些朋友對于daemon化卻并不是很了解,而且有些人還經常用錯方法,下面小編就用詳細的圖文代碼給大家做一下示范,希望對大家有所幫助。

      前言

      Daemon 音標 : [‘di:mən] , 中文含義為守護神或精靈的意思 . 其實它還有個意思 : 守護進程 .

      Daemon程序是一直運行的服務端程序,又稱為守護進程。通常在系統后臺運行,沒有控制終端不與前臺交互,Daemon程序一般作為系統服務使用。Daemon是長時間運行的進程,通常在系統啟動后就運行,在系統關閉時才結束。一般說Daemon程序在后臺運行,是因為它沒有控制終端,無法和前臺的用戶交互。Daemon程序一般都作為服務程序使用,等待客戶端程序與它通信。我們也把運行的Daemon程序稱作守護進程。

      每個進程都有一個父進程,子進程退出,父進程能得到子進程退出的狀態。

      守護進程簡單地說就是可以脫離終端而在后臺運行的進程 . 這在Linux中是非常常見的一種進程 , 比如apache或者mysql等服務啟動后 , 就會以守護進程的方式進駐在內存中 .

      以PHP為例 , 假如我有個耗時間的任務需要跑在后臺 : 將所有mysql中user表中的2000萬用戶全部導入到redis中做預熱緩存 , 那么這個任務估計一時半會是不會結束的 , 這個時候就需要編寫一個php腳本以daemon形式運行在系統中 , 結束后自動推出 .

      在Linux中 , 大概有三種方式實現腳本后臺化 :

      1 . 在命令后添加一個&符號 , 比如 php task.php & . 這個方法的缺點在于 如果terminal終端關閉 , 無論是正常關閉還是非正常關閉 , 這個php進程都會隨著終端關閉而關閉 , 其次是代碼中如果有echo或者print_r之類的輸出文本 , 會被輸出到當前的終端窗口中 .

      2 . 使用nohup命令 , 比如 nohup php task.php & . 默認情況下 , 代碼中echo或者print_r之類輸出的文本會被輸出到php代碼同級目錄的nohup.out文件中 . 如果你用exit命令或者關閉按鈕等正常手段關閉終端 , 該進程不會被關閉 , 依然會在后臺持續運行 . 但是如果終端遇到異常退出或者終止 , 該php進程也會隨即退出 . 本質上 , 也并非穩定可靠的daemon方案 .

      3 . 使用fork和setsid , 我暫且稱之為 : *nix解決方案 . 具體看下代碼 :

    *nix解決方案

      總結

      今天給大家介紹的關于PHP進程中想要實現daemon化應該如何操作的具體教程就到此為止了,上面的三種方式都十分簡單,大家可以按照自己的喜好來選擇最適合自己的方法。如果大家還想了解PHP進程里的更多內容也可以自行搜索一番,小編這里就不一一進行講解了。

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 宕昌县| 公安县| 平定县| 鹿泉市| 屏南县| 昭平县| 邓州市| 呈贡县| 荆门市| 泰宁县| 宽甸| 东莞市| 大连市| 会东县| 齐齐哈尔市| 宁国市| 咸丰县| 外汇| 阿尔山市| 长武县| 阳原县| 双城市| 焦作市| 沭阳县| 隆德县| 佛坪县| 河间市| 游戏| 织金县| 台安县| 华安县| 噶尔县| 怀仁县| 微山县| 汉川市| 永定县| 出国| 兴山县| 黑龙江省| 余庆县| 新昌县|