我编写了一个小脚本作为守护进程运行,当我在 unix 中运行命令时,一切似乎都正常:
php script.php
一切似乎都正常工作,当我终止该脚本并使用以下命令时,de 脚本没有在后台运行:
php script.php &
我究竟做错了什么?可能是服务器问题还是脚本问题?
答案1
即使 php 看起来不会写入输出,但它至少会准备写入标头。可以通过使用 php.ini 选项来抑制该行为-q
。
php -q script.php >/dev/null 2>&1 &
应该带你去你需要去的地方。
如果你想看看 php 是否真的输出任何东西,试试
php -q script.php >/tmp/script.log 2>&1 &
然后查看脚本运行后 /tmp/script.log 是否仍然为 0 字节。
答案2
试试这个 php script.php > /dev/null 2>&1 &