如何在启动时为root用户设置环境变量?

Posted

技术标签:

【中文标题】如何在启动时为root用户设置环境变量?【英文标题】:How to set environment variable for root user at start-up? 【发布时间】:2014-02-09 01:41:42 【问题描述】:

我正在尝试将内存使用情况监控添加到 console.aws.amazon.com 上实例的监控选项卡。这是一个运行 Amazon Linux AMI 2013.09.2 的实例,我找到了 Amazon CloudWatch Monitoring Scripts for Linux,特别是 mon-put-instance-data.pl,让我可以收集内存统计数据并将其作为自定义指标报告给 CloudWatch。

要使这项工作正常运行,我需要将环境变量 AWS_CREDENTIAL_FILE 设置为指向包含我的 AWSAccessKeyId 和 AWSSecretKey 的文件。我通过输入来做到这一点:

export AWS_CREDENTIAL_FILE=/home/ec2-user/aws-scripts-mon/awscreds.template

为了避免一遍又一遍地输入,我正在寻找一种在启动时设置环境变量的方法。我已经尝试将代码添加到这些文件中:

/etc/rc.local file
/etc/profile
/home/ec2-user/.bash_profile

当我切换到 root 用户 时,在任一文件中添加代码行似乎都有效,我应该把它放在哪里?如果我在 /home/ec2-user/.bash_profile 中设置变量,则该变量是为 ec2-user 设置的,但不是为 root 设置的。如果我然后 sudo -E su 它可以工作,但我不知道这是否是最好的方法?

【问题讨论】:

【参考方案1】:

创建一个 sh 文件并将代码放入其中。然后把这个 sh 文件放到 /etc/profile.d/ 文件夹中。

注意:使用 root 用户创建这个 sh 文件。

创建实例后,此 sh 文件将自动运行并为您创建环境变量,所有用户都可以访问此环境变量。

【讨论】:

以上是关于如何在启动时为root用户设置环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

安装JDK, 要在命令行下设置路径环境变量。啥是命令行,如何启动命令行?

请问linux 中如何设置环境变量?在哪个文件下可以查看该环境变量。

Tomcat直接启动tomcat时为tomcat指定JDK 而不是读取环境变量中的配置

linux子用户修改环境变量,切换到root环境用户变量不生效

怎么设置 linux环境变量配置

window 下怎么配置nginx环境变量