【问题标题】:How do I use Monit to keep an R script running?如何使用 Monit 保持 R 脚本运行?
【发布时间】:2011-09-23 21:53:26
【问题描述】:

我有一个希望在 Ubuntu 10.10 上连续运行的 R 脚本。我正在尝试设置 Monit 以确保它不会出现故障。当脚本启动时,它会创建一个 pid 文件,其中包含以下行:

pid <- max(system("pgrep -x R", intern = TRUE))
write(pid, "/var/run/myscript.pid")

然后我用这些线设置了Monit:

check process myscript with pidfile /var/run/myscript.pid
start program = "/usr/bin/R --vanilla < /home/me/myscript.R > /home/me/myscript.out 2>&1"

Monit 启动正常,但是当我终止 R 进程时,R 进程没有再次启动。我显然做错了什么。它在启动进程的语法中吗?我注意到文档说 Monit 首先尝试停止程序,但我不知道任何用于停止 R 进程的命令。

也许相关的是,启动程序的上述行在 root 用户的 crontab 中时有效,但在我的用户 crontab 中启动时无效。

非常感谢任何指导。

【问题讨论】:

  • 您确定正在创建 pid 文件吗?您是否在详细模式下运行了 monit?您是否能够使用 monit 停止、启动和重新启动进程(使用 monit stop/start/restart myscript)? monit 用户是否可以读取 pid 文件?我认为在详细模式下运行 monit 会很有用。
  • 谢谢。这些 cmets 帮助我解决了一些问题。由于其他地方出现错误,Monit 没有运行。我实际上有两个脚本,其中一个以 monit start myscript -v 开头并创建了 pidfile,但另一个没有并且不创建 pidfile。最初,我在启动命令中输入了一个错误,而那个命令没有运行。现在我怀疑错误被缓存在某个地方,因为即使我纠正了它也不会启动。
  • 是的。当我遇到监视器问题时,十分之九,我发现这不是监视器问题:) 好东西,很高兴它已修复。

标签: r ubuntu-10.10 monit


【解决方案1】:

我无法评论 Monit,但 Andrew Robinson 在 R News 中有一个很好的article,关于使用 linux/unix 工具来监控 R 。特别是,screenmail 可能对您的应用程序有用。

【讨论】:

  • 谢谢。屏幕和邮件绝对是我可以使用的有用工具,但看起来我不能用它们来重新启动脚本。
猜你喜欢
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多