记录一次环境问题
$ jmap -perstat javapid
提示我没有权限,然后
$ sudo jmap -perstat javapid
提示 jvm版本不同,很奇怪明明jvm用的同一个版本;后才发现原来 sudo 之后所用的命令jmap已经不是当前环境(PATH)下的了
当前环境,我设置了profile里的PATH环境变量,优先用 /usr/alibaba/java/bin
而我的系统里还有一个openjdk,当使用sudo 时实际是用的 /usr/bin/jmap
而非 /usr/alibaba/java/bin/jmap
删除了openjdk-7-jdk
之后,发现sudo jmap
会提示找不到jmap命令,确实因为其环境变量并没定义路径/usr/alibaba/java/bin
。如何在用sudo的时候使用当前的环境呢?使用-i
参数:
$ sudo -i jmap javapid