为什么在 exec php 中 运行 nohup 时更新 nohup.out
Why update nohup.out when running nohup in exec php
我正在 运行 连接一个 php 插座。我运行这个程序通过nohup。 运行 这个程序可以通过 root 正常运行。但我的问题是通过 php 中的 exec ()
函数 运行 连接程序。当我 运行 这样的命令时,程序 运行 正确但程序输出未打印在 nohup.out.
中
我在 ssh 中的命令:
nohup php my_path/example.php &
#正在工作
我在用户 php 中的命令:
exec('nohup php my_path/example.php >/dev/null 2>&1 &', $output);
#不更新 nohup.out
请指导我...
来自 exec
上的 PHP 文档:
If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.
来自man nohup
:
If standard input is a terminal, redirect it from /dev/null. If standard output is a terminal, append output to 'nohup.out' if possible, '$HOME/nohup.out' otherwise. If standard error is a terminal, redirect it to standard output. To save output to FILE, use 'nohup COMMAND > FILE'.
为了满足两者 - 手动重定向到 nohup.out
:
exec('nohup php my_path/example.php >>nohup.out 2>&1 &', $output);
我正在 运行 连接一个 php 插座。我运行这个程序通过nohup。 运行 这个程序可以通过 root 正常运行。但我的问题是通过 php 中的 exec ()
函数 运行 连接程序。当我 运行 这样的命令时,程序 运行 正确但程序输出未打印在 nohup.out.
我在 ssh 中的命令:
nohup php my_path/example.php &
#正在工作
我在用户 php 中的命令:
exec('nohup php my_path/example.php >/dev/null 2>&1 &', $output);
#不更新 nohup.out
请指导我...
来自 exec
上的 PHP 文档:
If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.
来自man nohup
:
If standard input is a terminal, redirect it from /dev/null. If standard output is a terminal, append output to 'nohup.out' if possible, '$HOME/nohup.out' otherwise. If standard error is a terminal, redirect it to standard output. To save output to FILE, use 'nohup COMMAND > FILE'.
为了满足两者 - 手动重定向到 nohup.out
:
exec('nohup php my_path/example.php >>nohup.out 2>&1 &', $output);