加载linux环境变量

加载linux环境变量,linux,environment-variables,coreos,Linux,Environment Variables,Coreos,我有一组环境变量,我想在每次启动时自动加载它。截至目前,我正在做以下工作: In/etc/environment export FLEETCTL_TUNNEL=10.77.189.179 在~/.bashrc中 source /etc/environment 但从理论上讲,如果将export命令放入~/.bashrc,应该可以正常工作吗 有没有更好的方法可以做到这一点?你是对的。放置在/etc/profile,~/.bash_profile,~/.bashrc,&/etc/Environme

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

In/etc/environment

export FLEETCTL_TUNNEL=10.77.189.179
在~/.bashrc中

source /etc/environment
但从理论上讲,如果将export命令放入~/.bashrc,应该可以正常工作吗


有没有更好的方法可以做到这一点?

你是对的。放置在
/etc/profile
~/.bash_profile
~/.bashrc
,&
/etc/Environment
中的环境变量都应该被读取(但将由不同的组件读取)。从技术上讲,
/etc/environment
与POSIX不兼容(这只意味着它不能在所有POSIX系统上工作)。此外,需要提供给单个服务的环境变量可以按照中的规定添加到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(从
/etc/machine ID
-“427483172c674b648b24f44bd133aeb7”读取)

您可能更容易在