在我的 Ubuntu 11.04 服务器上,当我尝试运行
service powernap stop
作为 root 用户的 cron 作业,它失败了,并在系统日志中显示此消息
NAS CRON[10853]: (CRON) error (grandchild #10854 failed with exit status 2)
这会通过电子邮件发送到 root 用户的电子邮件帐户
exec: 129: stop: not found
我可以从命令行启动和停止 powernap 服务,那么为什么它不能从 cron 运行?
答案1
从 cron 启动时似乎/sbin
不存在。添加如下行$PATH
PATH = /sbin:$PATH
到 crontab 文件。
答案2
嗯...奇怪的是 cron 试图运行“停止”...
尝试让 cron 运行这个:
sh -c '/usr/sbin/service powernap stop'
答案3
我确实遇到过这个问题,并且看起来在运行 crontab 时变量完全是空的,因此将其放在crontab 列表的顶部$PATH
是不够的。PATH=/usr/sbin;$PATH
所以,我所做的是(因为我以 root 身份运行这个 crontab,所以我可以关闭 squid 代理):
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
并且似乎已经起到了作用。