R语言 webshot2::webshot()因文件系统权限而无法获取屏幕截图

qyyhg6bp  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(155)

运行下面的代码有时会失败并返回附加的错误消息。

webshot2::webshot(url = "~/a_web_page.html", file = "~/an_image.png")
Error in launch_chrome(path, args) : 
  Failed to start chrome. Error: [1208/102720.412050:ERROR:filesystem_posix.cc(63)] mkdir /tmp/Crashpad/new: Permission denied (13)
[1208/102720.412409:ERROR:socket.cc(120)] recvmsg: Connection reset by peer (104)
a8jjtwal

a8jjtwal1#

原因是底层的chromote R包尝试通过lauch_chrome()启动chrome,然后chrome再次尝试写入/tmp/Crashpad/new的文件系统。
如果您导航到/tmp/Crashpad/new,您可能会看到另一个用户拥有此目录。这也意味着此问题可能是特定于由多个用户同步使用的RStudio服务器环境。这也解释了为什么此问题不会立即发生。第一个运行此代码的人应该不会遇到此问题。但是,此后的每个人都会遇到。
解决这个问题的一个方法是在截图之前关闭崩溃报告器。当然这意味着没有崩溃报告。

chromote::set_chrome_args("--disable-crash-reporter")
webshot2::webshot(url = "~/a_web_page.html", file = "~/an_image.png")

如果您出于某种原因需要崩溃报告,您也可以要求服务器管理员适当地调整文件系统权限。

相关问题