Ubuntu Server 14.04 LTS,我在 crontab 中有以下内容:
00 06 * * 1-5 /usr/local/bin/scribe /etc/local/scribe.1.conf 1&2>> /var/log/local/scribe.1.log
00 15 * * 1-5 killall scribe; sleep 10; /usr/local/bin/scribe /etc/local/scribe.1.conf 1&2>> /var/log/local/scribe.1.log
15 16 * * 1-5 killall scribe
我的目的是在早上 6 点运行一个程序,在下午 3 点终止它,然后在下午 3:00:10 重新运行它。我看到的是正在创建日志文件,但仍为空并且从未被写入。其 crontab 的用户对日志目录具有写入权限,因此我不确定为什么日志文件仍为空。我必须假设我犯了语法错误。
答案1
被... 1&2>> ...
视为... 1&
然后2>> ...
。
换句话说,它在后台启动第一部分,创建一个日志文件,并尝试启动 2,这当然什么也不做。因此没有输出发送到该日志文件。
我通常会做类似2>&1
将 stderr 发送到 stdout 之类的事情。如果您希望错误和标准输出转到同一文件,则必须首先定义 stdout。所以类似的东西>>blah.log 2>&1
。