部署了一个新的tomcat到一个新的用户下,发下启动失败了
/home/personal/apache-tomcat/bin/catalina.sh: line 434: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/jre/bin/java: No such file or directory
这里日志说启动时找java虚拟机时没找到,去看了下,果然不对
[personal@ZJHZ-CMREAD-TEST126 /]$ cd usr/lib/jvm [personal@ZJHZ-CMREAD-TEST126 jvm]$ ll total 0 drwxr-xr-x 3 root root 16 Mar 17 08:46 java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64
换个好的环境看了下环境变量,JAVA_HOME是/usr/jdk1.8.0_102,接着去系统变量 etc/profile里看
JAVA_HOME=/usr/jdk1.8.0_102 JAVA_BIN=/usr/jdk1.8.0_102/bin ANT_HOME=/home/cmreadwh/apache-ant-1.10.1 PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
很明显其他用户直接读取了系统配置的环境变量,那么我们来比较下两个用户之间环境变量配置的.bashrc文件内容的区别:
好的
# .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= # User specific aliases and functions
有问题的
# .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= # User specific aliases and functions source ~/apache-tomcat/cfg/cshrc
最后一行覆盖了前面的环境变量设置,我们来看看apache-tomcat/cfg/cshrc就知道了
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64" export CATALINA_TMPDIR="/tmp" export JAVA_BINDIR="${JAVA_HOME}/bin" export JDK_HOME="${JAVA_HOME}" export SDK_HOME="${JAVA_HOME}" export PATH="${JAVA_HOME}/bin:${HOME}/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:$PATH" export JAVA_ROOT="${JAVA_HOME}" export JRE_HOME="${JAVA_HOME}/jre" export CATALINA_HOME="${HOME}/apache-tomcat" export CLASSPATH=".:${JAVA_HOME}/lib/jt.jar:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/jre/lib:${CATALINA_HOME}/webapps/ues/WEB-INF/classes" #setenv LC_ALL zh_CN.GBK alias cfg="cd ${CATALINA_HOME}/cfg" alias webapps="cd ${CATALINA_HOME}/webapps" alias class="cd ${CATALINA_HOME}/webapps/ROOT/WEB-INF/classes" alias tlog="cd ${CATALINA_HOME}/logs" alias logs="cd ${CATALINA_HOME}/logs" alias local="cd ${CATALINA_HOME}/local" alias catlog="tail -f ${CATALINA_HOME}/logs/catalina.out" alias version="java Version" alias start="${CATALINA_HOME}/cfg/iread.sh start" alias stop="${CATALINA_HOME}/cfg/iread.sh stop" alias restart="${CATALINA_HOME}/cfg/iread.sh restart" alias status="${CATALINA_HOME}/cfg/iread.sh status"
为了使用系统环境变量,只要把有问题的用户里.bashrc文件的最后一行注掉就可以了,切记为了使新环境变量生效需要重新source一下
source ~/.bashrc