php程序守护进程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php程序守护进程相关的知识,希望对你有一定的参考价值。

php命令程序实习守护进程2种方式:

1.使用nohup

nohup php myprog.php > log.txt &

2.使用程序

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);

上面这个代码首先需要安装pcntl扩展。用上面代码即可实现守护进程化,当你的PHP程序需要转为后台运行时,只需要调用一次封装好的函数daemonize()即可。
注:这里没有实现标准输入输出的重定向。

 

根据端口来查询进程:

直接查看端口被那个进程给占用了,当php守护进程脚本不知道是那个进程,直接可以通过这个命令来查

lsof -i:8060

netstat

 

以上是关于php程序守护进程的主要内容,如果未能解决你的问题,请参考以下文章

Php cli是守护进程的吗

[Linux] PHP程序员玩转Linux系列-使用supervisor实现守护进程

拿什么守护你-PHP程序级守护进程的实现与优化

PHP程序守护进程化

php 守护进程 (简单)

[Linux]使用PHP编写Gearman的Worker守护进程