我在通过shiny-server
重新启动crontab
时遇到了一些麻烦。到目前为止,我尝试了两种方法:
1)创建了以restart shiny-server
作为最后一行的bash脚本,并添加到crontab
。此外,还有一些SQL代码可以预处理此脚本中的数据。
0 15 * * * bash /home/local/ANT/raybao/load.sh
2)为crontab -e
用户的root
添加了一行,如下所示:
0 15 * * * restart shiny-sever
我添加到root crontab
而不是我自己的用户只是因为你需要sudo restart shiny-server
。
奇怪的是,上面#1中的所有SQL代码都成功运行并被记录,但shiny-server
进程未重新启动。如果我只是这样做:sudo -i
然后restart shiny-server
,那就行了,让我感到困惑。
关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
所以,我最后在Ask Ubuntu上发布了同样的问题:https://askubuntu.com/questions/687423/use-crontab-to-restart-an-upstart-service-on-schedule
总之,在Ubuntu 12.04(使用Upstart)中安排重新启动shiny-server
的正确方法是将以下条目添加到root
用户{{1} }:
crontab
感谢@earthmeLon帮助我解决这个问题。希望这有助于将来有人!
答案 1 :(得分:1)
服务器文档中描述了另一种解决方案:http://docs.rstudio.com/shiny-server/#schedulers-application-restarts
可以通过更改应用程序目录中名为restart.txt的文件的“已修改时间”来重新启动应用程序。这可以使用touch实用程序轻松完成,如touch restart.txt,它会将此文件的修改时间戳更新为当前时间。在下一个与应用程序的新连接时,Shiny Server将生成一个新的R进程,为此用户和未来用户运行“新”(重新启动)Shiny Application。发生这种情况时,旧进程将保持不变,并且打开的连接将保持活动状态并且有效,直到最后一个连接自行关闭。
因此,您可以使用此行重新启动:
1)在app目录中创建一个文件variableOfType("int")
:
restart.txt
2)打电话给这个文件:
nano restart.txt
`
答案 2 :(得分:0)
对于Linux而言,我是一个初学者,所有这些都伴随着它,但这对我有用。
如果您喜欢我并从Ubuntu 14.04切换到15.04 Ubuntu更改为使用systemd作为默认值。在 1.4停止和开始下也可以看到此转换here。
我的问题是我有shiny-server
的旧版本使用upstart
来启动和停止闪亮服务器以便解决此问题我重新安装了闪亮服务器并将其粘贴到我的crontab(root)中测试重启是否有效:
* */1 * * * systemctl restart shiny-server
听起来你的问题有所不同,但这可能会有所帮助吗?