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