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

第一种方式,借助 nohup 和 &  配合使用。

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

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

用 & 方式来启动该进程

[[email protected] php]# php deadloop.php &  
[1] 3454  
[[email protected] 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  
[[email protected] php]#

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

[[email protected] php]# fg  
php deadloop.php  
1470996682  
1470996685  
1470996688  
1470996691

原文:

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

发表评论