【问题标题】:Cannot run background process on Amazon Linux Instance, but runs on MAC OS X无法在 Amazon Linux 实例上运行后台进程,但在 MAC OS X 上运行
【发布时间】:2011-09-25 15:15:15
【问题描述】:

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

我正在尝试通过 cmd 行运行 php 脚本。 如果我最后不附加 & 字符,它在 Amazon Linux 上运行良好。 如果我附加 &,它有一个 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

谢谢!

【问题讨论】:

    标签: linux amazon-ec2 background-process


    【解决方案1】:

    我自己想通了。

    由于某种原因,它被停止是因为它认为它需要从键盘进行某种输入。 如:

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

    1:标准输出(通常是显示器)

    2:标准错误

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

    我修改了我的cmd如下:

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

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

    谢谢! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 2012-01-15
      • 2012-07-09
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多