故障现象:
使用supervisord服务启动相关进程时,进程相关的环境变量为空:
故障分析:
supervisor启动是通过systemd管理启动,环境变量继承于systemd,但是systemd通常环境为默认,不存在自设环境变量。所以supervisor 启动的相关服务也不带相关环境变量。比如JAVA_HOME 就不会带。
故障解决:
-
添加系统变量文件(需删除不需要的环境变量,或者自己编辑):
/bin/env > /etc/supervisord.env -
修改supervisord 服务配置:
vim /usr/lib/systemd/system/supervisord.service
EnvironmentFile=/etc/supervisord.env
-
重启supervisor服务验证:
systemctl daemon-reload
systemctl restart supervisord.service
日志查看环境变量是否生效: