背景:某個業務程序在測試環境測試一切正常,部署到生產環境后出現超時
需要添加相對應的變量解決,添加到/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