解决SSH登录用户执行的命令部分环境变量参数不生效的问题
问题概况
Linux机器在/etc/profile配置完成环境变量后,SSH到目标机器执行命令,但是获取不到已配置的环境变量值。
例如场景:
在/etc/profile配置了http代理
export all_proxy=http://$PROXY_HOST:8118
export ftp_proxy=http://$PROXY_HOST:8118
export http_proxy=http://$PROXY_HOST:8118
export https_proxy=http://$PROXY_HOST:8118
然后 SSH 目标机器,并通过pm2 start app.js 启动应用程序,但是应用程序的请求走不到http代理程序。
解决办法
在 /etc/bashrc 文件中,把配置的那一坨也仍进去。就OK了。
问题原因
SSH 登录默认为非shell登录方式,而非shell登录方式执行的是bashrc脚本初始化环境变量。
而shell登录方式则是执行的是profile脚本初始化环境变量。
即
参考资料很好的说明了这个问题,就不搬砖了。
参考:Why does an SSH remote command get fewer environment variables then when run manually?
相关推荐
CheNorton 2020-06-25
xiaoyuerp 2020-08-17
blankt 2020-08-15
Jieen 2020-06-18
IsanaYashiro 2020-05-28
lanyou00 2020-05-26
昭君出塞 2020-05-25
zhushixia 2020-05-20
pointfish 2020-05-19
Attend 2020-05-15
屿刃 2020-04-29
lfjjia 2020-05-07
xiaohouye 2020-05-06
playlinuxxx 2020-05-05
Sabrina 2020-05-03
libao 2020-09-16
zjc 2020-09-03