php命令程序实习守护进程2种方式:
1.使用nohup
nohup php myprog.php > log.txt &
2.使用程序
function daemonize() { $pid = pcntl_fork(); if ($pid == -1) { die("fork(1) failed! "); } elseif ($pid > 0) { //让由用户启动的进程退出 exit(0); } //建立一个有别于终端的新session以脱离终端 posix_setsid(); $pid = pcntl_fork(); if ($pid == -1) { die("fork(2) failed! "); } elseif ($pid > 0) { //父进程退出, 剩下子进程成为最终的独立进程 exit(0); } } daemonize(); sleep(1000);
上面这个代码首先需要安装pcntl扩展。用上面代码即可实现守护进程化,当你的PHP程序需要转为后台运行时,只需要调用一次封装好的函数daemonize()即可。
注:这里没有实现标准输入输出的重定向。
根据端口来查询进程:
直接查看端口被那个进程给占用了,当php守护进程脚本不知道是那个进程,直接可以通过这个命令来查
lsof -i:8060
netstat