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