linux - cron 无法运行 R 脚本

标签 linux r cron

我有一个 R 脚本,可以从 R 内部或命令行运行得很好。它的操作非常简单。它只需要一些定期更新的数据,进行一些分析,绘制一些图,然后将它们保存到磁盘。我想在某种程度上与数据更新同步地自动运行它,所以我试图在 cron 作业下运行它。在将图像写入磁盘之前,它一切都很好。然后它告诉我它无法打开第一张图片,并且失败了。我已经尝试了所有我能想到的东西:检查运行目录中的权限,确保 cron 正在像我一样运行,将我的 cron 命令从“R CMD BATCH”切换到“Rscript”。没有任何效果。同样,该脚本从 R 内部或命令行运行得很好。任何人对我还能做什么有任何想法? (顺便说一句,我确实在这个网站上发现了一个与此类似的问题,但那里给出的答案对我的特殊情况没有帮助。)

违规代码似乎是:

png(file=nd_pic_image_names[1],height=720,width=720)

返回的错误是:

Error in X11(paste("png::", filename, sep = ""), g$width, g$height, pointsize,  : 
unable to start device PNG
Calls: png
In addition: Warning message:
In png(file = nd_pic_image_names[n], height = 720, width = 720) :
 unable to open connection to X11 display ''
Execution halted

我不明白“X11”的东西。我在代码中的任何地方都没有对 X11() 的引用,并且我没有尝试在打开(或试图打开)我的 PNG 文件之前进行绘图。谢谢。

最佳答案

从简单开始:

  1. 通过 Rscript 文件添加一个简单地执行单个命令的 cronjob,可能是 format(Sys.time()) -- 主要是为了(向自己)证明您可以运行一个 R 脚本

  2. 将现有代码转换为可在命令行运行的 R 脚本。确保你对环境变量等没有依赖 pp

  3. 将您的脚本添加为 cronjob。如果失败,通过添加到在 1 中创建的脚本中逐步完成。

关于linux - cron 无法运行 R 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12480705/

相关文章:

r - dplyr 中的函数和非标准评估

node.js - 使用 cron 每 12 小时重新启动 pm2 应用程序

linux - 如何设置 cron 显示 gui 应用程序

python - Cron 语法,MAC OS X

linux - 有没有办法在 Ubuntu 上运行镜像 Windows Docker?

linux - 如何解析正确的版本号?

linux - 如何在 Linux 上对 LCD(Windows 上的 cleartype)字体进行亚像素渲染?

html - R&Knitr html输出: Create collapsing and expanding header

r - h2o.Ensemble 中出现错误

linux - SBT 请求命令