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 启动某个程序,程序读取某个环境变量不生效的问题的主要内容,如果未能解决你的问题,请参考以下文章

systemctl

systemctl命令用法

从文件中读取某个字符串时程序执行中断

Prometheus设置systemctl管理

Robot Framework 读取控制面板安装的程序,判断某个程序是否已经安装

CentOS7自有服务和软件包