进程在没有 & 符号的情况下工作,但在有 & 符号的情况下不起作用

进程在没有 & 符号的情况下工作,但在有 & 符号的情况下不起作用

我编写了一个小脚本作为守护进程运行,当我在 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 &

相关内容