成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

workerman筆記-php創(chuàng)建守護進程

Cristic / 815人閱讀

摘要:守護進程常常在系統(tǒng)引導裝入時啟動,在系統(tǒng)關閉時終止。進程組有進程組來唯一標識。且該進程組不會因組長進程的退出而受到影響。

使用函數(shù)
pcntl_fork();//創(chuàng)建子進程
posix_setsid();//設置當前進程為進程組長

posix_getpid();//獲取進程id
例子

workerman中將進程

/**
 * Run as deamon mode.
 *
 * @throws Exception
 */
protected static function daemonize()
{
    if (!self::$daemonize) {
        return;
    }
    /**
     * 重設文件權限掩碼
     * 子進程從父進程繼承了文件權限
     * 若子進程不涉及到文件創(chuàng)建,可取消
     */
    umask(0);
    $pid = pcntl_fork();//創(chuàng)建子進程
    if (-1 === $pid) {
        throw new Exception("fork fail");
    } elseif ($pid > 0) {
        exit(0); //父進程退出
    }
    /**
     * 更改子進程為進程組長
     * 使子進程擺脫父進程控制
     */
    if (-1 === posix_setsid()) {
        throw new Exception("setsid fail");
    }
    // Fork again avoid SVR4 system regain the control of terminal.
    $pid = pcntl_fork();
    if (-1 === $pid) {
        throw new Exception("fork fail");
    } elseif (0 !== $pid) {
        exit(0);
    }
}
其他說明 基本概念

守護進程:Linux中的后臺服務進程。它是一個生存期較長的進程,通常獨立于控制終端并且周期性地執(zhí)行某種任務或等待處理某些發(fā)生的事件。守護進程常常在系統(tǒng)引導裝入時啟動,在系統(tǒng)關閉時終止。

進程組:是一個或多個進程的集合。進程組有進程組ID來唯一標識。除了進程號(PID)之外,進程組ID也是一個進程的必備屬性。每個進程組都有一個組長進程,其組長進程的進程號等于進程組ID。且該進程組ID不會因組長進程的退出而受到影響。

會話周期:會話期是一個或多個進程組的集合。通常,一個會話開始于用戶登錄,終止于用戶退出,在此期間該用戶運行的所有進程都屬于這個會話期。

創(chuàng)建流程

fork子進程,父進程退出

更改子進程為組長進程

改變當前目錄為根目錄(chdir())

重設文件權限掩碼

關閉文件描述符

守護進程退出,處理SIGCHLD信號

信號處理

//TODO

參考資料

PHP實現(xiàn)守護進程

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.hztianpu.com/yun/21550.html

相關文章

  • PHP進程系列筆記(四)

    摘要:本節(jié)主要講解常用函數(shù)和進程池的概念,也會涉及到守護進程的知識。所以任何時候,建議預先創(chuàng)建好進程,也就是使用進程池的方式實現(xiàn)。 本節(jié)主要講解Posix常用函數(shù)和進程池的概念,也會涉及到守護進程的知識。本節(jié)難度較低。 Posix常用函數(shù) posix_kill 向指定pid進程發(fā)送信號。成功時返回 TRUE , 或者在失敗時返回 FALSE 。 bool posix_kill ( int $...

    Cc_2011 評論0 收藏0
  • workerman 簡要分析

    摘要:后面每開啟一個子進程,會將子進程的存儲到中,用來后面主進程監(jiān)控子進程,如果子進程意外終止,主進程可以重新佛。將當前子進程設置為會話組再次創(chuàng)建子進程,為了防止在的系統(tǒng)下重新打開控制終端。 wokerman 啟動分析 @(學習)[workerman, php] 前期想說的 也是最近才看的代碼,遇到不懂得地方就去google,所以這篇文章里面穿插了很多參考資料,可以直接點擊閱覽。 需要了解一...

    senntyou 評論0 收藏0
  • 部署web項目的過程記錄,包括laravel,redis,mongodb,workerman的配置過

    摘要:如果服務器中該賬號的鑰匙對已經存在,并且已經將放到該賬號的設置中,可以跳過這一步。如果不符合,需要根據(jù)提示安裝必要的擴展。后續(xù)再進行補充做守護隊列監(jiān)聽進程和自動部署到服務器的說明。 系統(tǒng)LAMP基礎環(huán)境是已經搭建好,記錄要將web項目部署到線上的過程如下,方便后續(xù)部署新項目時參考: laravel項目ubuntu 16.04php 7.0 克隆項目到服務器 (1)我們使用 your@e...

    bluesky 評論0 收藏0
  • 部署web項目的過程記錄,包括laravel,redis,mongodb,workerman的配置過

    摘要:如果服務器中該賬號的鑰匙對已經存在,并且已經將放到該賬號的設置中,可以跳過這一步。如果不符合,需要根據(jù)提示安裝必要的擴展。后續(xù)再進行補充做守護隊列監(jiān)聽進程和自動部署到服務器的說明。 系統(tǒng)LAMP基礎環(huán)境是已經搭建好,記錄要將web項目部署到線上的過程如下,方便后續(xù)部署新項目時參考: laravel項目ubuntu 16.04php 7.0 克隆項目到服務器 (1)我們使用 your@e...

    xuexiangjys 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<