服務器:linnux 5.5 64位,已安裝好 jdk;
Tomcat版本:apache-tomcat-7.0.53
操作軟件:Xshell 4(Free for Home / School)
剛開始重啟了一次tomcat,但用瀏覽器訪問網站的時候一直卡着打不開,可能是tomcat的問題,於是在Xshell里輸入命令 ps -ef|grep java 查看進程中是否有tomcat出現,如下圖:
出現如上信息,說明tomcat進程存在,再次運行shutdown.sh和ps -ef|grep java看到該進程仍然無法結束,於是我強制結束該進程。要命的時,我kill錯了進程,如上圖,本應是kill掉29053,但卻把29378給kill掉了,導致的后果是再次運行shutdown.sh的時候,出現了以下的錯誤。
[root@sdc bin]# ./shutdown.sh Using CATALINA_BASE: /opt/tomcat Using CATALINA_HOME: /opt/tomcat Using CATALINA_TMPDIR: /opt/tomcat/temp Using JRE_HOME: /usr/java/jdk1.6.0_22 Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar Apr 17, 2014 11:14:50 AM org.apache.catalina.startup.Catalina stopServer SEVERE: Could not contact localhost:8005. Tomcat may not be running. Apr 17, 2014 11:14:50 AM org.apache.catalina.startup.Catalina stopServer SEVERE: Catalina.stop: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.<init>(Socket.java:375) at java.net.Socket.<init>(Socket.java:189) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:498) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:370) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:457) [root@sdc bin]#
如下圖:
反復操作,問題仍然沒有解決,包括用reboot命令重啟linux系統一樣不行。
但奇怪的是,過了十多分鍾后,分別再次運行shutdown.sh和startup.sh,發現上述問題已經不出現了,tomcat又恢復了正常,不知道是怎么回事。
事后又出現多次這樣的問題,后來終於發現原來是tomcat內存太小了,需要給tomcat增加虛擬內存,增加了tomcat的內存后,問題得以解決,終於可以再次關閉或啟動tomcat了。點擊這里查看:在linux系統里修改tomcat內存的方法。