![进程不在后台运行](https://linux22.com/image/843462/%E8%BF%9B%E7%A8%8B%E4%B8%8D%E5%9C%A8%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C.png)
<?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做别的事。