[英]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)
以輕松關閉它。
如果你運行這個命令
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/
對於 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.