2011-09-24 103 views
0

我不能运行在亚马逊的Linux实例后台进程,但在Mac OS X相同的运行不能运行在Amazon Linux实例后台进程,但运行在MAC OS X

我试图运行PHP脚本通过CMD线。 它在亚马逊Linux上运行良好,如果我不在最后追加&字符。 如果我追加&,它是有一个T作为其STAT

以下是发生了什么

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

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

[[email protected] 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 

[[email protected] somePath]# 

但是,如果我没有&运行完成罚款。

[[email protected] somePath]# php /path/to/myPhpScript.php arg1 arg2 arg3 
Prints some output... 
Prints some output... 
Prints some output... 
Prints some output... 
Done... 
[[email protected] somePath]# 

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

谢谢!

回答

1

我想出了自己。

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

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 & 

谢谢! :)