【问题标题】:cron has trouble running an R scriptcron 在运行 R 脚本时遇到问题
【发布时间】:2012-09-18 15:58:30
【问题描述】:

我有一个 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 文件之前进行绘图。谢谢。

【问题讨论】:

  • 提供错误消息和脚本中的相关代码可能会有所帮助。
  • 请查看问题的编辑。
  • Bob,X11 指的是X 窗口系统,它比我们通常处理的计算机低几层。它被Rplot() 函数调用以写入屏幕。 png() 当然是写入文件而不是屏幕。在此处查看 Andrie 的答案:stackoverflow.com/a/8322743/563329
  • Google 员工:另请参阅 Dirk 对stackoverflow.com/questions/10116411/…的回答

标签: linux r cron


【解决方案1】:

从简单开始:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2016-01-05
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    相关资源
    最近更新 更多