PHP执行nohup

时间:2013-04-17 01:05:39

标签: php linux command-line exec nohup

我目前使用nohup运行一个长PHP脚本并使用此命令将实时结果重定向到一个文件

nohup php long_file.php >logs 2>&1 &

所以我只是继续访问logs文件以查看结果

现在我想使用另一个php文件执行上述命令完全相同的事情 我用php exec 尝试了上面的命令,重定向输出似乎没有用,

我知道我可以使用php重新输出输出并使用任何文件写入函数存储它但事情是......输出太长,这就是为什么我让它在服务器的背景上运行

一个类似的问题: Shell_exec php with nohup,但没有回答

任何解决方案?

3 个答案:

答案 0 :(得分:1)

请尝试使用-q

nohup php -q long_file.php >logs 2>&1 &

http://ubuntuforums.org/showthread.php?t=977332

答案 1 :(得分:0)

你试过passthru而不是exec吗?

答案 2 :(得分:0)

您正在使用>

将STDOUT重定向到文件

每次运行脚本时都会截断文件。如果两个脚本同时将其输出重定向到同一个文件,那么最后一个脚本将截断第一个脚本的输出。

如果您确实想要正确附加到具有多个并发运行脚本的日志文件,请考虑使用>>以避免截断日志文件。

然而,副作用是日志文件永远不会截断并继续扩展,因此如果文件非常大,您可以考虑将其包含在logrotate方案中。