<?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做别的事。