我在 EC2 Spot 实例上运行 R,我需要 R 来终止实例并在脚本运行后取消 Spot 请求。
为此,我已将“请求 ID”设置为环境变量/.bashrc
我的计划是在脚本准备好后将以下代码调用到 R 中
system("ec2-cancel-spot-instance-requests $SIR")
我遇到的问题是 R 没有“看到”与我键入时看到的相同的环境变量env
来自 R 外部,因此该命令不起作用。
我已经检查过,如果我将环境变量设置为/etc/environment
R 能够看到这些变量,但这是另一个问题。由于这些变量是动态的(每次创建 Spot 实例时实例 ID 和请求 ID 都不同),因此我运行脚本以以下形式创建它们:
export SIR=`cat /etc/ec2_instance_spot_id.txt`
该文件包含动态 ID 的位置
那么,如何将“动态”环境变量插入到/etc/environment
?或者,我怎样才能让 R 读取环境变量/.bashrc
?
你要Sys.getenv()
as in Sys.getenv("PATH")
, say.
或者对于你的例子,尝试
SIR <- Sys.getenv("SIR")
system(paste("ec2-cancel-spot-instance-requests", SIR))
至于启动时设置变量,请参见help(Startup)
学习关于~/.Renvironment
etc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)