成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP程序守護(hù)進(jìn)程化

My_Oh_My / 3472人閱讀

摘要:調(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)程化。多帶帶執(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。PHP中暫時(shí)沒(méi)有此函數(shù),當(dāng)然如果你有興趣的話,可以寫一個(gè)PHP的擴(kuò)展函數(shù)來(lái)實(shí)現(xiàn)。

PHP命令行程序?qū)崿F(xiàn)守護(hù)進(jìn)程化有2種方法:
一 、使用nohup

nohup php myprog.php > log.txt &

這里就實(shí)現(xiàn)了守護(hù)進(jìn)程化。

多帶帶執(zhí)行 php myprog.php,當(dāng)按下ctrl+c時(shí)就會(huì)中斷程序執(zhí)行,會(huì)kill當(dāng)前進(jìn)程以及子進(jìn)程。

php myprog.php &,這樣執(zhí)行程序雖然也是轉(zhuǎn)為后臺(tái)運(yùn)行,實(shí)際上是依賴終端的,當(dāng)用戶退出終端時(shí)進(jìn)程就會(huì)被殺掉。
二、使用PHP代碼來(lái)實(shí)現(xiàn)

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

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

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

daemonize();
sleep(1000);

用上面代碼即可實(shí)現(xiàn)守護(hù)進(jìn)程化,當(dāng)你的PHP程序需要轉(zhuǎn)為后臺(tái)運(yùn)行時(shí),只需要調(diào)用一次封裝好的函數(shù)daemonize()即可。
注:這里沒(méi)有實(shí)現(xiàn)標(biāo)準(zhǔn)輸入輸出的重定向。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31921.html

相關(guān)文章

  • 使用 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
  • swoolefy-基于swoole擴(kuò)展實(shí)現(xiàn)的高性能的常駐內(nèi)存型API和Web應(yīng)用服務(wù)框架

    摘要:是一個(gè)基于擴(kuò)展實(shí)現(xiàn)的輕量級(jí)高性能的常駐內(nèi)存型的和應(yīng)用服務(wù)框架高度封裝了,,服務(wù)器,以及基于實(shí)現(xiàn)可擴(kuò)展的服務(wù),同時(shí)支持包方式安裝部署項(xiàng)目?;趯?shí)用,抽象事件處理類,實(shí)現(xiàn)與底層的回調(diào)的解耦,支持同步異步調(diào)用,內(nèi)置等常用組件等。 swoolefy swoolefy是一個(gè)基于swoole擴(kuò)展實(shí)現(xiàn)的輕量級(jí)高性能的常駐內(nèi)存型的API和Web應(yīng)用服務(wù)框架,高度封裝了http,websocket,ud...

    lewinlee 評(píng)論0 收藏0
  • php進(jìn)程daemon的正確做法

    摘要:原文地址音標(biāo)中文含義為守護(hù)神或精靈的意思其實(shí)它還有個(gè)意思守護(hù)進(jìn)程守護(hù)進(jìn)程簡(jiǎn)單地說(shuō)就是可以脫離終端而在后臺(tái)運(yùn)行的進(jìn)程這在中是非常常見(jiàn)的一種進(jìn)程比如或者等服務(wù)啟動(dòng)后就會(huì)以守護(hù)進(jìn)程的方式進(jìn)駐在內(nèi)存中以為例假如我有個(gè)耗時(shí)間的任務(wù)需要跑在后臺(tái)將所有 [原文地址:https://blog.ti-node.com/blog...] daemon 音標(biāo) : [di:m?n] , 中文含義為守護(hù)神或精靈...

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

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

0條評(píng)論

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