码迷,mamicode.com
首页 > 其他好文 > 详细

systemctl 启动某个程序,程序读取某个环境变量不生效的问题

时间:2020-03-11 16:58:56      阅读:595      评论:0      收藏:0      [点我收藏+]

标签:latest   通过   程序   EOS   部署   uri   daemon   mct   pre   

背景:某个业务程序在测试环境测试一切正常,部署到生产环境后出现超时。机器配置阿里云,测试环境Centos7.4,2C,生产7.6,32C

需要添加相对应的变量解决,添加到/etc/profile   source文件之后变量echo 显示是生效的,但程序仍有问题。

/etc/profile或者/etc/security/limit.d这些文件中配置的环境变量仅对通过pam登录的用户生效,而systemd是不读这些配置的,所以这就造成登录到终端时查看环境变量和手动启动应用都一切正常,但是systemd无法正常启动应用

解决:systemctl启动,直接变更用户shell的环境变量是不生效的,需要变更/usr/lib/systemd/system/xxxx.service脚本,在里面加环境变量

[Service]
Type=forking
Environment=你的环境变量名=变量值

  

修改后

systemctl daemon-reload

  

重启你的服务

systemctl restart 你的服务

  

关于systemctl 变量的介绍原文:https://coreos.com/os/docs/latest/using-environment-variables-in-systemd-units.html

 参考 https://www.cnblogs.com/jhxxb/p/10654554.html

systemctl 启动某个程序,程序读取某个环境变量不生效的问题

标签:latest   通过   程序   EOS   部署   uri   daemon   mct   pre   

原文地址:https://www.cnblogs.com/dribs/p/12463383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!