在Linux机器上运行的my-service
需要提供ENV_VAR
环境变量。如果我在etc/environment
文件中声明这个变量,它可以工作:vim /etc/environment
然后添加额外的行:ENV_VAR="My Value"
最后重新加载:source /etc/environment
然后我可以重新启动my-service
:sudo service my-service stop sudo service my-service start
我想知道是否可以避免在etc/environment
文件中声明ENV_VAR
变量。是否有其他方法可以声明service
可以看到的环境变量?
3条答案
按热度按时间ohtdti5x1#
所以如果你想添加一个 * 环境变量 *,你可以做一些事情:
1.编辑
/etc/enviroment
(所有用户)1.编辑
/etc/profile
(所有用户)1.编辑
~/.bashrc
(Just You)编辑上面的任何文件将确保在任何时候启动计算机时,您的环境都可以访问这些变量。
您还可以编辑
my-service
或my-service
包含的文件(如Cyrus所建议的)。这意味着,如果您对my-service
程序的源代码或my-service
包含的文件有写权限(在执行之前调用),您可以在该文件中添加一行代码。您甚至不需要编辑文件!每当你启动一个终端,你可以通过输入你应该添加到上面提到的文件中的文本来对环境进行实时更改。这个环境更改就像
~/.bashrc
更改一样,只适用于当前用户。如果你打算使用sudo <command>
,你将不得不先使用sudo su
切换到超级用户用户,然后再更改环境。如果你正在编辑文件或输入命令,我建议你使用下面的代码行。
export
命令将确保my-service
可以访问环境变量。export ENV_VAR=value
Related question
dtcbnfnu2#
是否有一种方法可以使用任何其他方法来声明环境变量,以供服务看到?
如果您的系统使用systemd来管理服务,您可以从systemd.exec documentation“环境”部分添加到服务文件中:
ej83mcc03#
它也可以在没有引号的情况下工作,例如,如果你想为www. example设置环境变量 www.example.com 核心应用程序;
可以使用空格设置多个变量