我正在使用 php5.3.3 在 CentOS 6.5 上运行一个简单的 PHP 脚本
#!/usr/bin/env php
<?php
echo "hello"."\n";
return 0;
?>
我的问题是,如果我这样做./testscript
,它运行良好,如果我这样做nohup ./testscript &
,它运行良好,如果我这样做,./testscript < /dev/null > /dev/null &
它运行良好(没有输出重定向也是如此)。但是如果我这样做./testscript &
了,脚本就会停止(并且没有输出):
[1]+ Stopped ./testscript
据我了解,这是因为 php 期望来自 STDIN 的一些输入。但问题是为什么?如您所见,在这个简单的脚本中没有什么需要输入的内容,而且我在 Debian 上的 php5.4 上也没有这种行为。这种行为变化是否来自 php 版本或操作系统?为什么会这样?有没有办法改变它并允许我在后台运行脚本而不必添加 /dev/null 作为 STDIN ?
谢谢 !