我在循环中运行一个简单的命令,命令本身是 ffmpeg,但我不相信它与问题有关,所以,我有:
exec($exec.' 2>&1', $output, $return);
if($return)
{
foreach($output as $line)
{
file_put_contents($log_file, $line, FILE_APPEND);
}
}
这样,如果命令出现任何问题,我可以读取日志中的输出。它可以工作,但是 $output 包含命令的整个 shell 历史记录。澄清一下:每次发生错误时,特定命令生成的所有输出(包括全天的数百次成功执行)都会转储到文件中。应该写入 5 行错误的是整个 1000 多行历史记录。我在 CentOS 上使用了完全相同的代码,它只给了我最近执行的实例生成的输出的预期输出。