问题
Docker Ubuntu:我对应的java环境变量,在每台机器上都已经配置完成,并且每台机器上独自运行java命令没有问题。
但是通过ssh远程调用命令就会出现问题,如下
root@node02:/# ssh node02 jps
bash: jps: command not found
root@node02:/# jps
352 NameNode
3969 Kafka
1428 QuorumPeerMain
452 DataNode
759 NodeManager
6253 Jps
但是如果通过ssh登录之后,环境变量又可以正常:
root@node02:/# ssh node02
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.72-microsoft-standard-WSL2 x86_64)
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
Last login: Mon Apr 11 20:43:59 2022 from 172.20.0.2
root@node02:~# jps
352 NameNode
3969 Kafka
1428 QuorumPeerMain
452 DataNode
759 NodeManager
6285 Jps
root@node02:~# exit
logout
Connection to node02 closed.
原因
bash
的状态有很多种,像这种情况首先会先加载 /etc/profile
,然后再从
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
里面选一个,找到了就不找了
解决
所以可以直接配置/etc
下面的环境变量
这里我修改的是/etc/bash.bashrc
,把java的环境变量写进去就可以了。(PS:我把环境变量写入.bashrc
没用,不知道是不是容器原因)