正在加载linux环境变量



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

In/etc/environment

export FLEETCTL_TUNNEL=10.77.189.179

在~/.bashrc 中

source /etc/environment

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

有没有一种更可取的方法?

你是对的。放置在/etc/profile~/.bash_profile~/.bashrc和&/etc/environment应该全部被读取(但是将由不同的组件读取)。从技术上讲,/etc/environment不符合POSIX(这只意味着它不能在所有POSIX系统上工作)。此外,需要提供给各个服务的环境变量可以添加到系统服务单元中,如人工系统服务中所述

这在实践中的一个例子是蚀刻:

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/ecd",值ETCD_NAME被设置为该主机的机器ID(从/etc/machine-id-"427483172c674b648b24f44bd133aeb7"读取)

最新更新