我正在尝试在后台运行一个 php CLI 脚本,但它不会运行 - 它的状态为 Stopped SIGTOU(尝试写入输出) - 这是详细信息
- Mac OS X Lion 10.7.2
- 带有 Suhosin-Patch (cli) 的 PHP 5.3.6(构建时间: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
关于PHP脚本不会在后台运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8194755/