我有一组环境变量,我想在每次启动时自动加载它。截至目前,我正在做以下事情:
在/ etc / environment
中export FLEETCTL_TUNNEL=10.77.189.179
在〜/ .bashrc
中source /etc/environment
但理论上输出命令如果放在〜/ .bashrc中,应该正常工作吗?
有没有首选的方法呢?
答案 0 :(得分:0)
你是对的。环境变量置于/etc/profile
,~/.bash_profile
,~/.bashrc
和&应该阅读/etc/environment
(但不同的组件会读取)。从技术上讲,/etc/environment
不符合POSIX(这意味着它不能在所有POSIX系统上运行)。此外,需要提供给各个服务的环境变量可以添加到man 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”)