尝试使用 cron 停止服务

尝试使用 cron 停止服务

在我的 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

并且似乎已经起到了作用。

相关内容