【发布时间】:2017-08-17 15:54:14
【问题描述】:
这可能比其他任何事情都更具理论性;一个解决方案将是非凡的,但任何反馈/想法都受到欢迎。
简单来说,我想知道是否可以完全从会话外部的后台进程更新 rstudio-server 上的活动会话中的环境变量。
例如,假设:
- 我们有一个每分钟运行一次的脚本作为
cron作业,它轮询一系列网站并将某些元素解析为data.frame - 我们的函数首先读取最初创建的
data.frame,如果它检测到我们正在轮询的网站发生变化,它会附加一个带有时间戳的新行,然后将data.frame保存回rds文件;如果它没有发现任何差异,它就会直接退出。 - 在我们的
.First函数中,每个会话都以assign('.url_df', readRDS('/home/user/url_checkr.rds'), envir = .GlobalEnv)开头,因此我们始终将最新的更新分配给活动的工作会话,并且它始终具有全局相同的变量名称。
现在的目标是能够从我们的外部脚本更新该环境变量,在 cron 或替代方案上运行,如有必要,可以使用任何更新的行。
我知道如何使用 echo msg > /proc/$pid/fd/0 在终端之间发送消息,并且知道我们可以在 INITIAL 函数中使用 system('ps', intern=TRUE) 来检查任何活动会话并获取它们的 pid。问题是我们/是否有可能使用这种方法在活动会话的后台使用任何更新的字段实际更新 .Global 变量?从那里开始,制定将消息发送到控制台等的方法并不难。
纯粹好奇/不确定我是否正确地理解了整个想法?
谢谢!
【问题讨论】:
标签: bash shell environment-variables rstudio rstudio-server