繁体   English   中英

PHP脚本不会在后台运行

[英]PHP script won't run in the background

我试图在后台运行一个php CLI脚本,它只是不会运行 - 它的状态为Stopped SIGTOU(试图写输出) - 这是详细信息

  • Mac OS X Lion 10.7.2
  • PHP 5.3.6与Suhosin-Patch(cli)(内置:2011年9月8日19:34:00)

我创建了一个基本脚本test.php

<?php echo 'Hello world'.PHP_EOL; ?>

以下是各种测试的结果: -

  • php -f test.php (Hello world显示)
  • php -f test.php >test.log 2>&1 (Hello world进入test.log)
  • php -f test.php >test.log 2>&1 & ---我得到[1]+ Stopped(SIGTTOU) php -f test.php > test.log 2>&1 - 这个工作只是坐在那里什么都不做没有记录,但lsof显示日志文件已打开

这与PHP有关吗? 类似的shell脚本在后台执行没有问题。

如果在构建php时启用了readline,只需传递/ dev / null作为输入。

在上面的示例中,它将是:

php -f test.php </dev/null >test.log 2>&1

现在已经解决了 - 感谢所有回复的人。 问题是Apple提供了预先构建了操作系统的PHP - CLI版本是使用readline构建的 - http://www.php.net/manual/en/intro.readline.php ...这可以防止任何后台运行脚本,因为readline自动启动IO与TTY ...

我的问题是我无法构建自己的PHP版本因为这个 - > http://forums.macrumors.com/showthread.php?t=1284479 - 一旦我解决了我的后台脚本问题就消失了:)

好吧,一个PHP脚本在完成执行时停止,即一个简单的回声“Hello World”在输出字符串时就完成执行,我猜它与它有关;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM