国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

守護(hù)進(jìn)程之PHP實(shí)現(xiàn)

lily_wang / 3134人閱讀

摘要:什么是守護(hù)進(jìn)程守護(hù)進(jìn)程是一種特殊的進(jìn)程,它的生命周期很長(zhǎng),它在后臺(tái)運(yùn)行并且沒(méi)有控制終端這樣可以保證守護(hù)進(jìn)程不會(huì)接收到各種來(lái)自終端的信號(hào)。比如等,都會(huì)使用守護(hù)進(jìn)程的形式運(yùn)行,確??梢砸恢闭5奶峁┓?wù)。

什么是守護(hù)進(jìn)程

守護(hù)進(jìn)程(daemon)是一種特殊的進(jìn)程,它的生命周期很長(zhǎng),它在后臺(tái)運(yùn)行并且沒(méi)有控制終端(這樣可以保證守護(hù)進(jìn)程不會(huì)接收到各種來(lái)自終端的信號(hào))。
比如:crontab、sshd、nginx等,都會(huì)使用守護(hù)進(jìn)程的形式運(yùn)行,確保可以一直正常的提供服務(wù)。

如何實(shí)現(xiàn)守護(hù)進(jìn)程

fork子進(jìn)程,父進(jìn)程退出(當(dāng)前子進(jìn)程會(huì)成為init進(jìn)程的子進(jìn)程)

子進(jìn)程調(diào)用setsid(),開(kāi)啟一個(gè)新會(huì)話,成為新的會(huì)話組長(zhǎng),并且釋放于終端的關(guān)聯(lián)關(guān)系

再次fork子進(jìn)程,父進(jìn)程退出(可以防止會(huì)話組長(zhǎng)重新申請(qǐng)打開(kāi)終端)

關(guān)閉打開(kāi)的文件描述符

改變當(dāng)前工作目錄chdir

清除進(jìn)程的umask

PHP實(shí)現(xiàn)
/**
 * daemon(守護(hù)進(jìn)程) PHP實(shí)現(xiàn)
 * @author zhjx922
 */

$pid = pcntl_fork();
if ($pid == -1) {
    die("創(chuàng)建子進(jìn)程失敗");
} else if ($pid) {
    //第一次退出父進(jìn)程
    exit(0);
}

//setsid
posix_setsid();

echo "成功輸出,脫離終端" . PHP_EOL;
sleep(5);

$pid = pcntl_fork();
if ($pid == -1) {
    die("創(chuàng)建子進(jìn)程失敗");
} else if ($pid) {
    //第二次退出父進(jìn)程(之前fork出來(lái)的子進(jìn)程)
    exit(0);
}

echo "依然可以輸出" . PHP_EOL;
sleep(5);

//關(guān)閉各種描述符
@fclose(STDOUT);
@fclose(STDERR);
$STDOUT = fopen("/dev/null", "a");
$STDERR = fopen("/dev/null", "a");

chdir("/");

umask(0);

echo "這里不會(huì)輸出, ps aux | grep daemon.php 查看進(jìn)程,20s后退出" . PHP_EOL;
sleep(20);
日常使用已經(jīng)注意事項(xiàng)

php daemon.php & 這樣使用,當(dāng)關(guān)閉終端后,當(dāng)前php進(jìn)程也會(huì)同時(shí)關(guān)掉

nohup php daemon.php > daemon.log & 終端關(guān)閉后,依然會(huì)繼續(xù)運(yùn)行

使用supervisor

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22634.html

相關(guān)文章

  • PHP玩轉(zhuǎn)進(jìn)程二 — 多進(jìn)程PHPServer

    摘要:代碼實(shí)現(xiàn)啟動(dòng)啟動(dòng)流程見(jiàn)流程,主要包括守護(hù)進(jìn)程保存注冊(cè)信號(hào)處理器創(chuàng)建多進(jìn)程這部分。模擬調(diào)度實(shí)際用實(shí)現(xiàn)捕獲信號(hào)其中,會(huì)在每次調(diào)度過(guò)程中,捕獲信號(hào)并執(zhí)行注冊(cè)的信號(hào)處理器。 首發(fā)于 樊浩柏科學(xué)院 經(jīng)過(guò) 用 PHP 玩轉(zhuǎn)進(jìn)程之一 — 基礎(chǔ) 的回顧復(fù)習(xí),我們已經(jīng)掌握了進(jìn)程的基礎(chǔ)知識(shí),現(xiàn)在可以嘗試用 PHP 做一些簡(jiǎn)單的進(jìn)程控制和管理,來(lái)加深我們對(duì)進(jìn)程的理解。接下來(lái),我將用多進(jìn)程模型實(shí)現(xiàn)一個(gè)簡(jiǎn)單的...

    stormjun 評(píng)論0 收藏0
  • 使用 Docker 搭建開(kāi)發(fā)環(huán)境

    摘要:做了一次分享,主題使用搭建開(kāi)發(fā)環(huán)境,簡(jiǎn)單介紹了一下的概念,演示了使用構(gòu)建全套環(huán)境。應(yīng)場(chǎng)景通常于如下場(chǎng)景應(yīng)的動(dòng)化打包和發(fā)布動(dòng)化測(cè)試和持續(xù)集成發(fā)布在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫(kù)或其他的后臺(tái)應(yīng)從頭編譯或者擴(kuò)展現(xiàn)有的或平臺(tái)來(lái)搭建的環(huán)境。 做了一次分享,主題《使用 Docker 搭建開(kāi)發(fā)環(huán)境》,簡(jiǎn)單介紹了一下 Docker 的概念,演示了使用 Docker-compose 構(gòu)建全套 PHP 環(huán)境...

    zxhaaa 評(píng)論0 收藏0
  • 使用 Docker 搭建開(kāi)發(fā)環(huán)境

    摘要:做了一次分享,主題使用搭建開(kāi)發(fā)環(huán)境,簡(jiǎn)單介紹了一下的概念,演示了使用構(gòu)建全套環(huán)境。應(yīng)場(chǎng)景通常于如下場(chǎng)景應(yīng)的動(dòng)化打包和發(fā)布動(dòng)化測(cè)試和持續(xù)集成發(fā)布在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫(kù)或其他的后臺(tái)應(yīng)從頭編譯或者擴(kuò)展現(xiàn)有的或平臺(tái)來(lái)搭建的環(huán)境。 做了一次分享,主題《使用 Docker 搭建開(kāi)發(fā)環(huán)境》,簡(jiǎn)單介紹了一下 Docker 的概念,演示了使用 Docker-compose 構(gòu)建全套 PHP 環(huán)境...

    kycool 評(píng)論0 收藏0
  • PHP程序守護(hù)進(jìn)程

    摘要:調(diào)用此函數(shù),就可使當(dāng)前進(jìn)程脫離終端變成一個(gè)守護(hù)進(jìn)程,具體內(nèi)容參見(jiàn)。命令行程序?qū)崿F(xiàn)守護(hù)進(jìn)程化有種方法一使用這里就實(shí)現(xiàn)了守護(hù)進(jìn)程化。單獨(dú)執(zhí)行,當(dāng)按下時(shí)就會(huì)中斷程序執(zhí)行,會(huì)當(dāng)前進(jìn)程以及子進(jìn)程。 一般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...

    My_Oh_My 評(píng)論0 收藏0
  • PHP回顧進(jìn)程編程

    摘要:多進(jìn)程中與多進(jìn)程相關(guān)的兩個(gè)重要拓展是和。函數(shù)執(zhí)行期間,主進(jìn)程除了等待無(wú)法處理其他任務(wù),所以一般不認(rèn)為這是多進(jìn)程編程?;厥兆舆M(jìn)程有兩種方式,一種是主進(jìn)程調(diào)用函數(shù)等待子進(jìn)程結(jié)束另外一種是處理信號(hào)。 轉(zhuǎn)載請(qǐng)注明文章出處: https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請(qǐng)求 cookie web響應(yīng) session 數(shù)據(jù)庫(kù)操作 加解...

    lifesimple 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

lily_wang

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<