加载linux环境变量

时间:2014-10-21 20:56:42

标签: linux environment-variables coreos

我有一组环境变量,我想在每次启动时自动加载它。截至目前,我正在做以下事情:

在/ etc / environment

export FLEETCTL_TUNNEL=10.77.189.179

在〜/ .bashrc

source /etc/environment

但理论上输出命令如果放在〜/ .bashrc中,应该正常工作吗?

有没有首选的方法呢?

1 个答案:

答案 0 :(得分:0)

你是对的。环境变量置于/etc/profile~/.bash_profile~/.bashrc和&应该阅读/etc/environment(但不同的组件会读取)。从技术上讲,/etc/environment不符合POSIX(这意味着它不能在所有POSIX系统上运行)。此外,需要提供给各个服务的环境变量可以添加到man systemd.service

中指定的systemd.service单元

实践中的一个例子是etcd:

core@littleguy ~ $ systemctl  cat etcd.service
# /usr/lib64/systemd/system/etcd.service
[Unit]
Description=etcd

[Service]
User=etcd
PermissionsStartOnly=true
Environment=ETCD_DATA_DIR=/var/lib/etcd
Environment=ETCD_NAME=%m
ExecStart=/usr/bin/etcd 
Restart=always
RestartSec=10s

在这种情况下,您可以看到值ETCD_DATA_DIR已设置为“/ var / lib / etcd”,值ETCD_NAME已设置为此主机的计算机ID(从{读取) {1}} - “427483172c674b648b24f44bd133aeb7”)