systemctl 启动某个程序,程序读取某个环境变量不生效的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了systemctl 启动某个程序,程序读取某个环境变量不生效的问题相关的知识,希望对你有一定的参考价值。
背景:某个业务程序在测试环境测试一切正常,部署到生产环境后出现超时
需要添加相对应的变量解决,添加到/etc/profile source文件之后变量echo 显示是生效的,但程序仍有问题。
/etc/profile或者/etc/security/limit.d这些文件中配置的环境变量仅对通过pam登录的用户生效,而systemd是不读这些配置的,所以这就造成登录到终端时查看环境变量和手动启动应用都一切正常,但是systemd无法正常启动应用
解决:变更/usr/lib/systemd/system/xxxx.service在里面加环境变量
[Service] Type=forking Environment=你的环境变量名=变量值
修改后
systemctl daemon-reload
重启你的服务
systemctl restart 你的服务
参考 https://www.freedesktop.org/software/systemd/man/systemd.service.html
以上是关于systemctl 启动某个程序,程序读取某个环境变量不生效的问题的主要内容,如果未能解决你的问题,请参考以下文章