2014-02-16 134 views
2

我無法關閉tomcat。當我做./shutdown.sh時,我沒有看到任何錯誤,但該過程似乎仍在運行。當我殺死進程(殺死-9)時,進程就會被殺死。在此之後,如果我進行了一次啓動,並再次關機,我看到了同樣的問題。我如何優雅地關閉它?爲什麼這首先發生?請幫幫我。Tomcat沒有關閉

devServer:bin dev$ ps -ef|grep tomcat 
    501 34933  1 0 11:24PM test 0:02.02 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Djava.util.logging.config.file=/Users/dev/admin/runtime/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/Users/dev/admin/runtime/endorsed -classpath /Users/dev/admin/runtime/bin/bootstrap.jar:/Users/dev/admin/runtime/bin/tomcat-juli.jar -Dcatalina.base=/Users/dev/admin/runtime -Dcatalina.home=/Users/dev/admin/runtime -Djava.io.tmpdir=/Users/dev/admin/runtime/temp org.apache.catalina.startup.Bootstrap start 
    501 34982 33786 0 11:45PM test 0:00.00 grep tomcat 
devServer:bin dev$ ./shutdown.sh 
Using CATALINA_BASE: /Users/dev/admin/runtime 
Using CATALINA_HOME: /Users/dev/admin/runtime 
Using CATALINA_TMPDIR: /Users/dev/admin/runtime/temp 
Using JRE_HOME:  /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 
Using CLASSPATH:  /Users/dev/admin/runtime/bin/bootstrap.jar:/Users/dev/admin/runtime/bin/tomcat-juli.jar 
devServer:bin dev$ ps -ef|grep tomcat 
    501 34933  1 0 11:24PM test 0:02.03 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Djava.util.logging.config.file=/Users/dev/admin/runtime/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/Users/dev/admin/runtime/endorsed -classpath /Users/dev/admin/runtime/bin/bootstrap.jar:/Users/dev/admin/runtime/bin/tomcat-juli.jar -Dcatalina.base=/Users/dev/admin/runtime -Dcatalina.home=/Users/dev/admin/runtime -Djava.io.tmpdir=/Users/dev/admin/runtime/temp org.apache.catalina.startup.Bootstrap start 
    501 34992 33786 0 11:45PM test 0:00.00 grep tomcat 
devServer:bin dev$ 

此外,我看到我的catalina.out太短。根本沒有端口號信息被寫入。這是我每次啓動時都看到的。

Feb 15, 2014 11:24:23 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java 

這裏是我的日誌文件 -

devServer:logs dev$ cat catalina.2014-02-15.log 
Feb 15, 2014 11:24:23 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java 

東西似乎非常混亂。我無法理解什麼。請指教。 我在Mac OS上運行tomcat 7.0.50。

+0

是否有任何應用程序部署在這個tomcat中?或者它是從tomcat官方網站下載的新鮮的tomcat?你也可以粘貼你的完整日誌(在tomcat啓動時和在tomcat關閉時) –

+0

我試過改變端口,但沒有運氣。當我嘗試在我的瀏覽器中嘗試:端口號時,頁面從不加載,這基本上意味着我的tomcat永遠不會啓動:( – rickygrimes

+0

我希望看到日誌,請粘貼啓動/關閉日誌 –

回答

1

從日誌來看,很明顯tomcat根本就沒有啓動。我可以建議幾個其他測試,以及如

  1. 驗證端口是否越來越受tomcat服務綁定或不。你可以通過在終端上發出命令netstat -tuplen來做到這一點,並檢查端口8080是否被tomcat實例綁定。
  2. 檢查是否可以ping實例。嘗試從本地機器ping通tomcat實例。然後嘗試ping服務器的公共IP以驗證該服務器是否正確響應
  3. 驗證您是否具有與其他服務器一樣使用的完整的tomcat模板。驗證tomcat installtion文件夾,並將其與其他服務器中使用的其他tomcat模板進行比較。確保所有文件夾都存在,所有配置(默認tomcat配置)文件都存在。
  4. 驗證讀/寫/執行權限
  5. 刪除您的應用程序,關閉tomcat,清空日誌,然後重新啓動tomcat並重新部署您的應用程序,然後查看日誌以查看您是否得到一些錯誤

3點似乎更有可能的是你有一個不完整的Tomcat實例,所以我建議你做任何其他服務器所使用的Tomcat實例的副本,並在此服務器使用它來確保該服務器環境其實應該是怎麼樣的

+0

奇怪的是在這個服務器上,所有的端口都被阻塞了。我檢查了使用Open Network Utility打開的端口,並根據可用端口配置了關閉和啓動端口。我如何驗證1? 2 - 是的,我可以ping實例。我也能telnet到端口 - telnet localhost 3.是的,我有完整的模板。我不會僅複製其中的一部分。就像我說的,它在我的其他服務器上工作得很好。 – rickygrimes

+0

你可以通過啓動tomcat來檢查它,然後獲取tomcat的進程ID並檢查端口8080是否被正確的tomcat進程ID用完了 –

+1

@DownVoter,我不介意crticism,但至少解釋downvote的原因 –