php两种实现守护进程的方式。

第一种方式,借助 nohup 和 &  配合使用。
在命令后面加上 & 符号, 可以让启动的进程转到后台运行,而不占用控制台,控制台还可以再运行其他命令,这里我使用一个while死循环来做演示,代码如下

<?php
while(true){
        echo time().PHP_EOL;
        sleep(3);

用 & 方式来启动该进程

[root@localhost php]# php deadloop.php &
[1] 3454
[root@localhost php]# ps aux | grep 3454
root      3454  0.0  0.8 284544  8452 pts/0    T    18:06   0:00 php deadloop.php
root      3456  0.0  0.0 103316   896 pts/0    S+   18:08   0:00 grep 3454
[1]+  Stopped                 php deadloop.php
[root@localhost php]#

可以看到该进程并未占用控制台,控制台还可以运行其他命令,这时我们还可以通过 fg 命令让进程恢复到普通占用控制台的模式。

[root@localhost php]# fg
php deadloop.php
1470996682
1470996685
1470996688
1470996691

原文:
https://blog.csdn.net/zhang197093/article/details/52226349