【MobaXterm】Execute command 的问题;Linux环境变量配置;

引言

记录一次使用MobaXterm工具连接数据库时出现的问题。
现象是这样的:通过MobaXterm使用账户A以SSH方式连接登录测试服务器,尝试重启服务。服务启动时提示JDK版本不一致:Unsupported major.minor version 52.0
查询一下java版本
在这里插入图片描述
开发环境是 jdk8,服务器查询出来的版本却是7,导致重启服务失败。

排查

我查询了环境配置的文件:~/.bash_profile
里面清楚的写了java环境变量配置的命令
逻辑上讲应该正常加载到当前账户A的环境变量中。
尝试手动加载配置文件,之后查看java版本
在这里插入图片描述
发现此时jdk版本正常了,可以说文件和命令都是可用的,文件本身应该是没有问题的。
测试一下,在文件的头部添加命令,输出.bash_profile到控制台。

echo ".bash_profile"

保存后。重新连接发现 没有任何打印。
以上说明,~/.bash_profile该配置文件在账户A登陆时没有正常加载出来。
因为,在此之前我是可以正常使用MobaXterm重启服务的,我按照以前的方法在MobaXterm上新建了一个session连接到服务器发现 控制台输出了 .bash_profile,也就是说这次登录加载了 ~/.bash_profile,检查Java版本发现是jdk8。
接下来考虑这两个session的区别。
由于我之前使用了 session 中 Execute Command 执行了cd命令,以便在打开Shell后直接进入服务的目录下
在这里插入图片描述
通过这种方式打开的shell,我推测是moba与服务器建立连接后通过Nologin方式执行了shell脚本,此时打开的shell是Nologin Shell,是不执行~/.bash_profile的。所以环境变量未加载上。

结论

如果希望 Execute command 好用,可以将环境变量配置在 ~/.bashrc 文件中,或者全局的配置文件 /etc/profile 中。
其次,不调整配置文件的方法,可以使用session setting中的宏录制方式,来达成建立连接后自动执行某些命令。链接:录制宏的方法
在这里插入图片描述

参考:
Linux环境变量配置
Login Shell和No-Login Shell
Linux环境变量相关操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值