使用 crontab 按计划重启 Upstart 服务?

Ray*_*Ray 3 cron upstart 12.04

我需要按shiny-server例行计划在 Ubuntu 12.04 上重新启动(Upstart 服务)。

通常,如果我想手动重新启动此服务,只需键入:sudo restart shiny-serverservice shiny-server restart(作为root)。据我了解,这类似于sudo restart mysql.

为了安排重新启动,我在我的root用户中尝试了以下条目crontab

 0 6 * * * restart shiny-server
 0 6 * * * service shiny-server restart
 0 6 * * * bash /home/local/ANT/raybao/dev/script.sh
Run Code Online (Sandbox Code Playgroud)

当最后一行script.shservice shiny-server restart

以上都没有实际工作!

所以我很困惑/困惑。我错过了什么?谢谢!!

更多信息shiny-serverhttp : //rstudio.github.io/shiny-server/latest/#upstart-ubuntu-12.04-through-14.10-redhat-6

ear*_*Lon 9

您在正确的路径上将此添加到 root 用户的cron.

完整的系统路径

使用 时cron,您要确保对命令和文件使用完整的系统路径。您可以使用该which命令找出所在restart位置:which restart。对我来说,它显示/sbin/restart.

因此,使用此信息,cron 将如下所示:

0 6 * * * /sbin/restart shiny-server
Run Code Online (Sandbox Code Playgroud)

这将在系统时间上午 6:00 重新启动服务器。

输出到 /dev/null

cron运行时,它会通过邮件的任何输出到谁运行cron作业的用户。如果你不想要这个,你可能不想要,你运行的命令看起来像这样:

0 6 * * * /sbin/restart shiny-server > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

这会将 stdout 和 stderr 输出到/dev/null,而不是被 读取cron

编辑

我原本误解并认为该服务正在运行 using init,而实际上它正在使用upstart. 道德故事遗体的使用完整系统路径使用时cron