无法在Amazon Linux实例上运行后台进程,但在MAC OS X上运行

时间:2011-09-24 22:46:58

标签: linux amazon-ec2 background-process

我无法在Amazon Linux实例中运行后台进程,但在Mac OS X上运行相同的

我正在尝试通过cmd行运行php脚本。 如果我不附加&最后的角色。 如果我追加&amp ;,它的T为其STAT

以下是发生的事情

[root@someIp somePath]# php /path/to/myPhpScript.php arg1 arg2 arg3 > /dev/null 2>log.txt &
[1] 17849

[root@someIp somePath]# jobs
[1]+ Stopped php /path/to/myPhpScript.php arg1 arg2 arg3 > /dev/null 2>log.txt

[root@someIp somePath]# bg 1
[1]+ php /path/to/myPhpScript.php arg1 arg2 arg3 > /dev/null 2>log.txt &

[1]+ Stopped php /path/to/myPhpScript.php arg1 arg2 arg3 > /dev/null 2>log.txt

[root@someIp somePath]# 

但如果我没有&它很好。

[root@someIp somePath]# php /path/to/myPhpScript.php arg1 arg2 arg3
Prints some output...
Prints some output...
Prints some output...
Prints some output...
Done...
[root@someIp somePath]#

相同情况:https://forums.aws.amazon.com/thread.jspa?messageID=281552

谢谢!

1 个答案:

答案 0 :(得分:2)

我自己想出来了。

出于某种原因,它被停止了,因为它认为它需要来自键盘的某种输入。 为:

0:标准输入(通常是键盘)

1:标准输出(通常是监视器)

2:标准错误

所以我添加了从/ dev / null读取的标准输入。

我修改了我的cmd,如下所示:

# php /path/to/myPhpScript.php arg1 arg2 arg3 0</dev/null 1 >/dev/null 2>log.txt &

OR

# php /path/to/myPhpScript.php arg1 arg2 arg3 </dev/null >/dev/null 2>log.txt &

谢谢! :)