为什么 R 会话特定的临时目录会在长时间运行的 R 进程中消失?

2024-02-11

R 使用 mkdtemp() 在 TMPDIR 的子目录中创建特定于会话的临时目录,并在 R 退出时删除该目录树。调用 tempfile() 和调用 pdf() 时默认使用此目录。

我发现对于一些运行时间非常长(例如 2 天)的 Rscript 作业,特定于会话的临时目录似乎消失了。我收到由plot.new() 产生的“没有这样的文件或目录”错误,或写入使用tempfile() 创建的路径时出现的类似错误。

我在几个数据集上使用了相同的代码,但我只在最大、运行时间最长的数据集上看到这个问题。最终出现错误的同一进程能够在进程的早期创建其他 PDF,因此推测临时目录在进程生命周期的某个时刻存在。另请注意,在 PDF 情况下,问题最终会导致段错误,从而在退出时清理特定于会话的临时目录之前结束 R 进程。我从核心文件中提取了特定于会话的临时目录的名称,并确认它不存在。

知道什么是删除特定于会话的临时目录吗?

显示 R 在到达临时目录清理代码之前崩溃的段错误:

#0  0x00000037ff467934 in fwrite () from /lib64/libc.so.6
#1  0x00002ae33b8c10e2 in PDF_endpage () at devPS.c:6509
#2  0x00002ae33b8c284b in PDF_Close () at devPS.c:7257
#3  0x00002ae338dbf05e in removeDevice.part.0 ()
   from /broad/software/free/Linux/redhat_6_x86_64/pkgs/r_3.3.0/lib64/R/lib/libR.so
#4  0x00002ae338dbf4c9 in Rf_KillAllDevices ()
   from /broad/software/free/Linux/redhat_6_x86_64/pkgs/r_3.3.0/lib64/R/lib/libR.so
#5  0x00002ae338ee42e4 in Rstd_CleanUp ()
   from /broad/software/free/Linux/redhat_6_x86_64/pkgs/r_3.3.0/lib64/R/lib/libR.so
#6  0x00002ae338e21947 in run_Rmainloop ()
   from /broad/software/free/Linux/redhat_6_x86_64/pkgs/r_3.3.0/lib64/R/lib/libR.so
#7  0x00000000004007bb in main () at Rmain.c:29

根据 @kba 在 Serverfault 上的回答,针对这个问题/tmp什么时候被清除? https://serverfault.com/questions/377348/when-does-tmp-get-cleared

这取决于你的分布。在某些系统上,它仅在启动时删除,其他系统则运行 cronjobs 来删除早于n hours.

  • 在类似 Debian 的系统上:启动时(规则定义在/etc/default/rcS).
  • 在类似 RedHat 的系统上:按年龄(RHEL6)/etc/cron.daily/tmpwatch; RHEL7 和 RedHat 类似,其配置为 systemd/usr/lib/tmpfiles.d/tmp.conf, 调用者systemd-tmpfiles-clean.service).
  • 在 Gentoo 上/etc/conf.d/bootmisc.

您可以通过更改 R 工作目录来解决此问题。在你的 ~/.Renviron 文件中,输入

TEMP=~/Rworkdir

或类似的东西。 (您可能必须使用 TMP 而不是 TEMP。)这将告诉 R 在您的主目录下创建其工作目录。替换任何适合您的路径。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 R 会话特定的临时目录会在长时间运行的 R 进程中消失? 的相关文章

  • 有没有办法在 RStudio 中调试 RScript 调用?

    假设我从命令行运行 R 脚本 如下所示 Rscript prog R x y z 我想检查某一行的代码 目前 我无法在 RStudio 中以交互方式调试它 因为我不知道如何传递参数 由于它设计为从命令行运行 因此如何通过命令行 RStudi
  • R - 正则表达式错误(PCRE 版本)

    我正在尝试使用koRpus在 R 中在运行 RHEL6 的 Linux 服务器上进行词形还原 上周 当我安装了 MRO Microsoft R Open 3 2 3 时 下面的代码效果很好 library koRpus lw c danci
  • 可以明确声明包依赖项的版本吗?

    我倾向于对我编写的代码进行明确而不是隐含的描述 因此 在成功创建自己的包之后 我立即想到的下一件事是如何最好地确保代码的健壮性和可靠性 其中一部分与我的包所依赖的包有关 实际问题 在这方面 是否可以明确声明需要 期望哪个版本的包依赖项 我正
  • 将密度曲线拟合到 R 中的直方图

    R中有没有可以将曲线拟合到直方图的函数 假设您有以下直方图 hist c rep 65 times 5 rep 25 times 5 rep 35 times 10 rep 45 times 4 看上去很正常 但其实是歪曲的 我想拟合一条倾
  • 从网络源获取 R 中的数据作为数据框

    我正在尝试使用 RCurl 包将一些空气污染背景数据作为 data frame 直接加载到 R 中 该网站有 3 个下拉框 用于在下载 csv 文件之前选择选项 如下图所示 我试图从下拉框中选择 3 个值 并使用 下载 CSV 按钮将数据作
  • 如何调整ggplot直方图的时间刻度轴

    我正在使用一个数据框 其中一列包含POSIXct日期时间值 我正在尝试使用绘制这些时间戳的直方图ggplot2但我有两个问题 我不知道如何设置 binwidthgeom histogram 我想将每个垃圾箱设置为一天或一周 我尝试提供 di
  • 将summary()写入as.data.frame以在ggplot / R中使用

    请查找 af 数据样本t below 我正在使用以下方法进行竞争风险分析etmCIF来自etm package 产生以下结果 这很好 但需要更好的图形 曾经有一个ggtrans etm函数将数据导入ggplot 然而 这个功能显然被删除了
  • 使用 ggplot2 修改点子集的形状

    我正在尝试绘制一个沿大量维度变化的大型散点图 这是我的起始情节 p lt ggplot mtcars aes wt mpg shape cyl colour gear size carb geom point 使用mtcars数据集 我只是
  • R 中的 NA 替换函数

    我正在尝试替换矩阵中的 NA mat 零 我在用着mat is na mat lt 0 当我有 18946 个变量的 94531 个观察值或更小的矩阵时 效果很好 但我在 22752 个变量的 112039 个观察值的矩阵上尝试它 R 显示
  • 如何使用 pdf.js 从客户端设置范围标头?

    我对客户端编程很陌生 我正在尝试使用 pdf js 在我的网站上查看我的 pdf 通过遵循文档中的步骤 我尝试使用 pdf js 加载 pdf 整个 pdf 文件通过单个请求下载 现在 我想做渐进式加载 通过指定范围下载 我在客户端和服务器
  • 使用底格里斯河从纬度/经度获取人口普查区

    我有相对较多的坐标 我想获取其人口普查区 除了 FIPS 代码 我知道我可以使用以下命令查找各个纬度 经度对call geolocator latlon 已完成here https stackoverflow com questions 5
  • 将列表中的列转换为 R 中的数据框

    我有使用 R 创建的以下列表 set seed 326581 X1 rnorm 10 0 1 Y1 rnorm 10 0 2 data data frame X1 Y1 lst lt replicate 100 df smpl lt dat
  • dplyr,do(),从模型中提取参数而不丢失分组变量

    R 帮助中关于 do 的示例略有不同 by cyl lt group by mtcars cyl models lt by cyl gt do mod lm mpg disp data coefficients lt models gt d
  • 如何将pdf页面设置设置为打印属性对话框?

    大家好 我想知道如何设置 pdf 页面设置到打印属性对话框 例如 如果我的 PDF 页面设置为横向 则布局会自动显示横向而不是纵向 如果我的 PDF 页面设置为纵向 则布局会自动显示纵向 我在这个主题上做了很多研发 但没有找到任何满意的链接
  • R 编程:如何计算数据框中两个单元格之间的差异并将它们保存在新列中

    尝试学习 R 并陷入自相关示例中 我想将 x 的差异与 y 的差异进行回归 我在数据框中有 x 和 y 并且希望将 x2 x1 的差值保存在新列 例如 dx 中 我不知道该怎么做 我拥有的 data1 x y 5 3 8 9 3 1 1 5
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • 使用outer代替expand.grid

    我正在寻找尽可能快的速度并留在基地做该做的事expand grid做 我用过outer为过去类似的目的创建一个向量 像这样的东西 v lt outer letters LETTERS paste0 unlist v lower tri v
  • 有没有一种简单的方法来判断存储在一个列表中的许多数据帧是否包含相同的列?

    我有一个包含许多数据框的列表 df1 lt data frame A 1 5 B 2 6 C LETTERS 1 5 df2 lt data frame A 1 5 B 2 6 C LETTERS 1 5 df3 lt data frame
  • 最小的有效 PDF 是多少?

    出于简单的好奇心 看到了最小的 GIF http probablyprogramming com 2009 03 15 the tiniest gif ever 最小的有效 PDF 文件是多少 这是一个有趣的问题 按照书本 你可以从以下开始
  • 单击 R 中的 Sankey Chart 线时添加额外的标签值

    以下 R 闪亮脚本创建一个桑基图 如下面的快照所示 我的要求是 当我单击左右节点之间的任何链接 即 a1 和 a2 时 我希望相应的 a3 的总和出现在标签中 例如 a1 中的 A 和 a2 中的 E 总共具有值 50 和 32 因此 我想

随机推荐

  • 服务器客户端通信Python

    Server import socket import sys s socket socket socket AF INET socket SOCK STREAM host VAC01 VACLab com port int 2000 s
  • request-promise-native 的替代方案[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在寻找在 Node js 中实现基本 HTTP 方法 例如 GET POST 的现代模块 我想最受
  • 片段中的 EditText 和软键盘问题

    我目前正在构建一个 Android 应用程序 使用户能够拍照并写入其详细信息 该应用程序使用 Sherlock 库 我实现了一个 SherlockFragment 来显示图像 以及一些 EditText 和 TextView 来使用户能够键
  • 使用正则表达式匹配数字 - 仅数字和逗号

    我无法弄清楚如何为示例值构建正则表达式 123 456 789 12 34 1234 8 你可以帮帮我吗 什么是数字 我有一个简单的问题your 简单 问题 一个数字 到底是什么意思 Is 0一个号码 你对这个怎么看 1 Is or 一个号
  • 如何通过 ID 从另一个网站获取元素 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想通过其 ID 从另一个站点获取 div 的内容 比方说 我有一个网站 我想从这个 URL 获取 id 为 mainbar 的 di
  • 如何用C语言生成GUID?

    我想生成插入 SQLite 数据库的 guid 即数据库本身不支持 但是 我想控制某些属性 用于生成不断增加的指导值的有序性 计算机独立性 数据库是公共的 可能 可能不希望 guid 允许某人将数据追溯到特定机器 足够 的随机性 guid
  • S3方法:扩展ggplot2`+.gg`函数

    我正在尝试延长ggplot2一个新的类 我们称之为foo对于这个例子 目标是写一个 foo将用来代替的方法 gg 但是我遇到了 方法不兼容 的问题 设置 目前我可以写ggplot add foo layer这将使plot进入我的foocla
  • 如何重新计算单元格的公式?

    我的代码设置了很多单元格值 最后 在生成 Excel 文件之前需要评估每个单元格中的公式 对于大多数床单来说 一切进展顺利 但是 有一个单元格抛出异常 该单元格正在计算其后面的一系列单元格以及其他工作表中的参考单元格的平均值 我猜当第一个单
  • R:如何使用正则表达式对列表元素进行分组和聚合?

    我想按组汇总 总结 以下产品列表 见下文 prods lt list 101 2000 data frame 1 2 3 102 2000 data frame 4 5 6 103 2000 data frame 7 8 9 104 200
  • 通过 request 在 Node.js 中获取下载进度

    我正在创建一个使用 Node 模块下载应用程序文件的更新程序request 我该如何使用chunk length估计剩余文件大小 这是我的代码的一部分 var file url http foo com bar zip var out fs
  • 使用 Java 将文件上传并 POST 到 PHP 页面

    我需要一种上传文件并将其 POST 到 php 页面的方法 我的 php 页面是
  • C++ 中的字符串分配:为什么会这样? [复制]

    这个问题在这里已经有答案了 void changeString const char s std string str s str replace 0 5 Howdy s str c str int main const char s He
  • 如何在 Python 中创建带有复选框的树视图

    我一直在使用 Tkinter 和 Tix 编写一个小程序 我现在需要一个带有复选框 复选框 的树视图 以便我可以从树视图中选择项目 是否有捷径可寻 我一直在研究 ttk Treeview 看起来很容易获得树视图 但是有没有办法在视图中插入复
  • Axios 拦截器令牌标头存在于配置中,但不存在于请求标头中

    我创建了 axios 拦截器 它负责在每个请求发送到我的其余 API 之前添加令牌 import axios from axios import store from store store export default function
  • IHttpContextAccessor 会话 GetString

    我正在尝试使用 NET Core 运行时将 ASP NET MVC 站点迁移到 ASP NET Core 以前 我们可以从会话存储中获取对象 即使在不同的程序集中 也可以使用 var obj HttpContext Current Sess
  • 如何无限迭代列表,每次循环 +1 偏移量

    我想从 0 到末尾无限迭代列表 但在下一个循环中 我想从 1 开始到末尾加 0 下一个循环将从 2 开始到末尾加 0 1 直到最后一项将从 0 重新开始并到达末尾 这是我的代码 a 0 1 2 offset 0 rotate 0 while
  • 如何从 R Shiny 应用程序中数据表中的选定行获取行值

    我需要从 DT 数据表中获取所选行第一列的值 使用 数据表 rows selected 我能够获取选定的行数 现在我正在寻找从数据表中提取行值的方法 在下面的例子中 有两个观察事件基于操作按钮 第一个观察事件被导入并显示数据 第二个观察事件
  • 无法在 Atom 中安装 platformio-ide-terminal

    我是 python 的初学者 从昨天开始学习它 我面临以下错误 Installing email protected cdn cgi l email protection failed gt email protected cdn cgi
  • 在 svg 上居中对齐饼图

    我试图让一个饼图示例起作用 其中图表的位置在其包含的元素内居中对齐 在本例中只是一个简单的 div 设置为使用 100 可用宽度 看到这个fiddle http jsfiddle net 2qeab2ds 1 正如您所看到的 图表的中心位于
  • 为什么 R 会话特定的临时目录会在长时间运行的 R 进程中消失?

    R 使用 mkdtemp 在 TMPDIR 的子目录中创建特定于会话的临时目录 并在 R 退出时删除该目录树 调用 tempfile 和调用 pdf 时默认使用此目录 我发现对于一些运行时间非常长 例如 2 天 的 Rscript 作业 特