簡體   English   中英

如何在 Ubuntu 中關閉 Tomcat?

[英]How to SHUTDOWN Tomcat in Ubuntu?

我試圖關閉tomcat如下所示,但 tomcat 似乎仍在運行(http://localhost:8080/)

 vandegraff@vandegraff-laptop:~$ /usr/share/tomcat6/bin/shutdown.sh Using CATALINA_BASE: /usr/share/tomcat6 Using CATALINA_HOME: /usr/share/tomcat6 Using CATALINA_TMPDIR: /usr/share/tomcat6/temp Using JRE_HOME: /usr 1 Nov, 2010 11:41:40 PM 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:422) 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:337) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)

這是為什么?


@hvgotcodes 的更新 1:

Output 的ps -ax | grep java

1597? ss 0:00 /usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile /SYSpidvarLOG -errfile SYSLOG /run/tomcat6.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/共享/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat6/work/catalina.policy -Djava.util.logging.manager= org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties org.apache.catalina.startup.Bootstrap

1598? S 0:00 /usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile /SYSLOG -errfile SYSLOG /run/tomcat6.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/共享/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat6/work/catalina.policy -Djava.util.logging.manager= org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties org.apache.catalina.startup.Bootstrap

1599? sl 0:20 /usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile /SYSLOG -errfile SYSLOG /run/tomcat6.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/共享/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat6/work/catalina.policy -Djava.util.logging.manager= org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties org.apache.catalina.startup.Bootstrap

是否應該殺死所有這 3 個進程 - 1597、1598、1599

試試

/etc/init.d/tomcat stop

(也許你必須在tomcat之后寫一些東西,只需按一次 Tab 鍵)

編輯:而且您還需要以 root 身份執行此操作。

Van,在您的情況下,tomcat 不會正常關閉,我會使用

ps ax | grep java

找到java進程號。 如果該命令返回某些內容,則運行

sudo kill -9 pid

其中 pid 是進程號。 -9 選項的意思是“殺死它”,通常你不需要這種東西,但由於在你的情況下進程不會正常停止,你需要它。

第一個命令的輸出應該如下所示

38678 s002  U      0:02.62 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java -Djava.util.logging.config.file=/usr/share/apache-tomcat-6.0.26/conf/logging.properties -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=xxxx -Djava.endorsed.dirs=/usr/share/apache-tomcat-6.0.26/endorsed -classpath /usr/share/apache-tomcat-6.0.26/bin/bootstrap.jar -Dcatalina.base=/usr/share/apache-tomcat-6.0.26 -Dcatalina.home=/usr/share/apache-tomcat-6.0.26 -Djava.io.tmpdir=/usr/share/apache-tomcat-6.0.26/temp org.apache.catalina.startup.Bootstrap start

38678 是進程號。 請注意,可能還有其他您不想殺死的 Java 進程正在運行。 此外,此輸出來自 mac,因此在 ubuntu 上看起來會略有不同。

嘗試使用此命令:(這將停止 tomcat servlet 這確實有幫助)

須藤服務 tomcat7 停止

sudo tomcat7 restart (如果需要重啟)

要停止 apache 進程試試這個命令

ps輔助| grep tomcat | awk '{print $2}' | xargs kill -9

要獲得更優雅的方式,請嘗試以下操作:

警告:我運行的是 Debian 7,而不是 Ubuntu,盡管它是 Debian 的衍生版本

如果您將 Tomcat 作為服務運行,則可以通過鍵入以下內容獲取所有正在運行的服務的列表:

須藤服務 --status-all

我正在運行 Tomcat 7,它在上述列表中顯示為tomcat7 然后,要關閉它,只需鍵入:

須藤服務 tomcat7 停止

如果您手動安裝了tomcat ,請從終端運行shutdown.sh(/.../tomcat/bin)以輕松關閉它

我遇到了類似的問題,發現以下命令可以工作:

須藤 systemctl 停止 tomcat

運行此命令后,您可以鍵入以下內容以驗證它是否已“禁用”:

systemctl 列表單位

systemctl 列表單元的輸出

如果你運行這個命令

 debian@debian:~$  /usr/share/tomcat7/bin/shutdown.sh
 then your server will not stop and you will get o/p like that you provided if you use in 
 super user mode then effect will appear o/p will come like this

 debian@debian:~$ sudo /usr/share/tomcat7/bin/shutdown.sh
 [sudo] password for debian: 
 Using CATALINA_BASE:   /var/lib/tomcat
 Using CATALINA_HOME:   /var/lib/tomcat
 Using CATALINA_TMPDIR: /var/lib/tomcat/temp
 Using JRE_HOME:        /usr/lib/jvm/java-1.6.0-openjdk
 Using CLASSPATH:   /var/lib/tomcat/bin/bootstrap.jar:/var/lib/tomcat/bin/tomcat-juli.jar

如果您安裝了 tomcat,則可以執行以下操作:

sh path2tomcat/bin/shutdown.sh

在jsvc下運行Tomcat時,不會響應shutdown.sh腳本發送的指定關閉端口的關閉信號。 我知道的唯一方法是終止進程,但是您需要終止列為 jsvc 的進程,而不是 java。

要檢查Tomcat環境變量是否設置,請在終端中使用以下命令:

echo $CATALINA_HOME

啟動 Tomcat:

$CATALINA_HOME/bin/startup.sh

停止 Tomcat:

$CATALINA_HOME/bin/shutdown.sh

檢查 Tomcat 啟動或停止: http://localhost:8080/

截圖: 1.終端 2.Tomcat啟動 3.Tomcat停止

對於 tomcat 9,使用以下命令

對於停止

sudo systemctl stop tomcat.service

開始

sudo systemctl start tomcat.service

用於重新加載 tomcat java 選擇

sudo systemctl daemon-reload

沒有一個建議的解決方案對我有用。

我在完成部署之前運行了tomcat restart ,這弄亂了我的 Web 應用程序。

EC2 自動運行 tomcat,而 tomcat 在嘗試連接到未正確配置的數據庫連接時卡住了。

我只需要在 server.xml 中刪除我的自定義上下文,重新啟動 tomcat 並重新添加上下文。

警告:我正在運行 Ubuntu

sudo service --status-all

您可以通過鍵入此命令來獲取所有正在運行的服務的列表,

如果您將 Tomcat 作為服務運行,它將顯示為 ("tomcat"),因此請運行:

sudo service tomcat7 stop

(tomcat7 或 8 或取決於您在正在運行的服務列表中的名稱)

否則,如果您使用的是 apache tomcat,您將看到 ("apache2") 顯示服務列表,然后運行:

sudo service apache2 stop

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM