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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM