进程不在后台运行

进程不在后台运行
<?php
 while(true)
    {
    set_time_limit(2);
    $reas ="wake up from sleep!!!!!!!!!! \n ";
    echo $reas;
    sleep(5);
   // $readlen = 0;
    }
?>

我尝试运行此代码。在前台,它运行完美。但在后台运行并检查进程时,找不到 id。我尝试使用命令top检查并

  nohup php p2.php & 

获取进程 ID,但是当我尝试使用

 kill 1234

我收到一条错误消息“没有这样的过程”。

我的代码有什么问题?如何在后台运行并使其显示top

答案1

您可以使用screen

screen watch -n 1 ls -l /etc/

然后在里面screen输入Ctrl-a d分离屏幕。

即使您注销,该进程仍在运行,请参见:

# ps faux | grep ls
root     13879  0.0  0.0   7828   844 pts/0    S+   08:20   0:00          \_ grep ls
root     13571  0.0  0.0  23388  1436 ?        Ss   08:18   0:00 SCREEN watch -n 1 ls -l /etc/
root     13572  0.1  0.0  14864  1780 pts/1    Ss+  08:18   0:00  \_ watch -n 1 ls -l /etc/

还有 pid。或者通过:

#pidof watch
13572

要重新连接屏幕类型:

screen -r

然后你就回到里面了,Ctrl或者c做别的事。

相关内容