我有一个希望在 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 启动时无效。
非常感谢任何指导。