如果我想在系统的 /etc/crontab 中添加行,我该怎么做才能使它们生效?
背景:
我正在尝试设置一台装有 Ubuntu 13.04 的机器,以便它在工作日自动锁定/解锁显示器(它挂在墙上)。
我通过将以下内容添加到我的 /etc/crontab 来完成此操作:
00 18 * * mon-fri myuser export DISPLAY:=0 && gnome-screensaver-command -a
00 18 * * mon-fri myuser export DISPLAY:=0 && xset dpms force standby
00 08 * * mon-fri myuser export DISPLAY:=0 && gnome-screensaver-command -d
00 08 * * mon-fri myuser export DISPLAY:=0 && xset dpms force on
单个命令运行正常,但我尝试通过将分钟/天设置为即将到来的分钟来测试 crontab 条目。例如,在下午 1:26,我将前两列设置为 27 13,然后等到下一分钟。但命令似乎没有执行。我也尝试运行sudo crontab /etc/crontab
,但似乎没有帮助。
答案1
首先,您可能需要指定所有命令的路径。例如:
00 08 * * mon-fri DISPLAY=:0 /usr/bin/xset dpms force on
或者,你可以在 crontab 文件的顶部放置一行 PATH。请参阅man 5 crontab
。
其次,系统应该通过电子邮件发送 cron 输出给您。检查其中是否有错误消息。
答案2
经过进一步调试,我确定正在运行sudo crontab /etc/crontab
实际上是重新加载 crontab 并且正在运行我的命令。看起来这只是特定命令的问题。我能够通过echo "test" >> /home/myuser/test.txt &&
在命令开头添加来确定这一点。