0

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

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

所以我只是去logs不断访问文件以查看结果

现在我想使用另一个 php 文件执行相同的操作来执行上述命令,
我用 php 尝试了上述命令,exec 重定向输出似乎不起作用,

我知道我可以使用 php 检索输出并使用任何文件写入函数存储它,但问题是 .. 输出太长这就是为什么我让它在服务器的后台运行

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

任何解决方案?

4

3 回答 3

1

请尝试使用 -q

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

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

于 2015-02-10T09:40:54.703 回答
0

您是否尝试过passthru而不是 exec?

于 2013-04-17T01:13:12.520 回答
0

您正在使用将 STDOUT 重定向到文件>

这将在每次运行脚本时截断文件。如果两个脚本同时将它们的输出重定向到同一个文件,最后启动的脚本将截断第一个脚本的输出。

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

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

于 2015-06-17T11:51:45.907 回答