我有一组环境变量,我想在每次启动时自动加载它。到目前为止,我正在做以下工作:
在/etc/environment中
export FLEETCTL_TUNNEL=10.77.189.179在~/.bashrc中
source /etc/environment但在理论上,如果将导出命令放在~/.bashrc中,应该可以正常工作?
有没有更好的方式来做这件事?
发布于 2014-10-22 10:42:34
你是对的。放置在/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 (从/etc/machine-id -”427483172c674b648b24f44bd133aeb7“读取)
https://stackoverflow.com/questions/26496147
复制相似问题