在我手动运行的php脚本中有以下一行:
exec("/usr/bin/php ".__DIR__."/driver.php > /dev/null &");
我如何修改它,使输出也写入日志文件(除了在后台运行)。下面的代码对我来说不起作用:
exec("/usr/bin/php ".__DIR__."/driver1.php /tmp/log.txt > /dev/null &");
在bash/shell中,>
操作符告诉它在哪里写入输出。在原始命令中,输出被发送到/dev/null
,这意味着它将被丢弃。相反,更新命令以指向日志文件:
exec("/usr/bin/php ".__DIR__."/driver1.php > /tmp/log.txt &");
如果您想要将内容附加到该文件中(即不要每次运行该命令时都替换它),则需要使用>>
:
exec("/usr/bin/php ".__DIR__."/driver1.php >> /tmp/log.txt &");
我认为是exec("/usr/bin/php ".__DIR__."/driver.php >> /tmp/log.txt 2>&1");
。
原始文件中的>/dev/null将发送输出,但不发送到日志文件。它会转到/dev/null
>/tmp/log.txt应该把你的输出附加到log.txt中。
2>&1还应该将错误输出重定向到该日志文件。