【发布时间】:2012-08-30 18:17:20
【问题描述】:
我在 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 处的环境变量?
任何正确方向的提示将不胜感激!
【问题讨论】:
-
我发现 ~/.profile 中的变量可以从 Sys.getenv() 访问,但不能从 ~/.bashrc 访问。在添加新变量后,我必须从终端执行
source ~/.profile,然后执行R才能使其工作。
标签: linux r ubuntu amazon-ec2 environment-variables