1

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

4

1 回答 1

2

开始简单:

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

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

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

于 2012-09-18T16:17:37.723 回答