我需要shiny-server
按照例行计划在 Ubuntu 12.04 上重新启动(Upstart 服务)。
通常,如果我想手动重启此服务,我只需输入:sudo restart shiny-server
或service shiny-server restart
(as 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
其中的最后一行script.sh
是service shiny-server restart
。
事实上,以上方法都不起作用!
所以我非常困惑。我遗漏了什么?谢谢!!
更多信息请参见shiny-server
此处:http://rstudio.github.io/shiny-server/latest/#upstart-ubuntu-12.04-through-14.10-redhat-6
答案1
将其添加到 root 用户的路径正确cron
。
完整系统路径
使用时cron
,一定要使用完整系统路径命令和文件。您可以使用which
命令来查找restart
位于:which restart
。对我来说,它显示/sbin/restart
。
因此,使用此信息,cron 将如下所示:
0 6 * * * /sbin/restart shiny-server
这将在系统时间早上 6:00 重新启动服务器。
输出到/dev/null
运行时cron
,它将发送电子邮件任何输出给运行 cron 作业的用户。如果您不想要这个(您可能不想),则您运行的命令应如下所示:
0 6 * * * /sbin/restart shiny-server > /dev/null 2>&1
这会将 stdout 和 stderr 都输出到/dev/null
,而不是被 读取cron
。
编辑
我最初误解了,以为这项服务正在使用 运行init
,但实际上它正在使用upstart
。这个故事的寓意依然是使用完整的系统路径当使用 时cron
。