转载请注明出处http://blog.youkuaiyun.com/izard999/article/details/40371901
很多时候, 我们把工程部署到服务器之后会用startup.sh启服务器
然而, 一定会有人遇到 服务器起了, 工程访问不了的情况, 这个时候怎么办呢? 抓瞎了
catalina.out等一系列log没有记载, 特别是我的Tomcat上面配置了3个Host的时候, 另外两个可以正常访问, 只有一个无法访问,而且会告诉你404了!
怎么办?
别着急, 我以前看过startup.bat/startup.sh的代码, 这两个命令会在一个新的窗口去执行catalina命令, 然而windows下, 只要启服务器报错, 窗口会自动关闭, 服务器中运行了startup.sh后, 报错也不会有任何提示.
startup.sh片段代码
EXECUTABLE=catalina.sh
exec "$PRGDIR"/"$EXECUTABLE" start "$@"
执行了catlina.sh 并且带了start为参数
catalina.sh片段
echo " jpda start Start Catalina under JPDA debugger"
echo " run Start Catalina in the current window"
echo " run -security Start in the current window with security manager"
echo " start Start Catalina in a separate window"
echo " start -security Start in a separate window with security manager"
echo " stop Stop Catalina, waiting up to 5 seconds for the process to end"
echo " stop n Stop Catalina, waiting up to n seconds for the process to end"
echo " stop -force Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running"
echo " stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running"
echo " configtest Run a basic syntax check on server.xml - check exit code for result"
echo " version What version of tomcat are you running?"
看到了么? 各个参数的说明
想在本窗口运行的话, 只有用catalina run , 这个run参数 是告诉tomcat.在本窗口执行而不切换窗口, 所以可以看到启服务器的一切信息和log, 包括异常,
可以很快速的定位你的服务器是哪里报错了导致工程启不来