如何关闭Ubuntu中的Tomcat?

时间:2010-11-01 18:19:35

标签: tomcat 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的Update1:​​

输出 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 SYSLOG -errfile SYSLOG -pidfile / var /run/tomcat6.pid -Djava.awt.headless = true -Xmx128M -Djava.endorsed.dirs = / usr / share / tomcat6 / endorsed -Dcatalina.base = / var / lib / tomcat6 -Dcatalina.home = / usr / share / 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 -pidfile / var /run/tomcat6.pid -Djava.awt.headless = true -Xmx128M -Djava.endorsed.dirs = / usr / share / tomcat6 / endorsed -Dcatalina.base = / var / lib / tomcat6 -Dcatalina.home = / usr / share / 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 -pidfile / var /run/tomcat6.pid -Djava.awt.headless = true -Xmx128M -Djava.endorsed.dirs = / usr / share / tomcat6 / endorsed -Dcatalina.base = / var / lib / tomcat6 -Dcatalina.home = / usr / share / 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

这三个过程 - 1597,1598,1599 - 应该被杀死吗?

12 个答案:

答案 0 :(得分:52)

尝试

/etc/init.d/tomcat stop

(也许你必须在tomcat之后写一些东西,只需按Tab键一次)

编辑:你还需要以root身份完成。

答案 1 :(得分:21)

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上看起来会略有不同。

答案 2 :(得分:12)

尝试使用此命令:(这将停止tomcat servlet,这确实有帮助)

  

sudo service tomcat7 stop

  

sudo tomcat7 restart(如果你需要重启)

答案 3 :(得分:3)

要停止apache进程,请尝试此命令

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

答案 4 :(得分:3)

要获得更优雅的方式,请尝试以下方法:

警告:我正在运行Debian 7,而不是Ubuntu,尽管它是Debian衍生物

如果您将Tomcat作为服务运行,则可以通过键入以下内容获取所有正在运行的服务的列表:

sudo service --status-all

我正在运行Tomcat 7,它在所述列表中显示为 tomcat7 。然后,关闭它只需键入:

sudo service tomcat7 stop

答案 5 :(得分:2)

如果您手动安装tomcat,请轻松地从终端运行shutdown.sh(/.../tomcat/bin) 将其关闭

答案 6 :(得分:1)

在jsvc下运行Tomcat时,它不会响应从shutdown.sh脚本发送的指定关闭端口上的关闭信号。我知道的唯一方法就是杀死进程,但是你需要杀掉列为jsvc而不是java的那些。

答案 7 :(得分:1)

如果您运行此命令

 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

答案 8 :(得分:1)

如果你安装了tomcat,你可以这样做:

sh path2tomcat/bin/shutdown.sh

答案 9 :(得分:0)

我遇到了类似的问题,发现以下命令可以正常工作:

sudo systemctl stop tomcat

运行此命令后,您可以键入以下内容以验证其为“禁用”:

systemctl列表单元

output for systemctl list-units

答案 10 :(得分:-1)

所有建议的解决方案都不适合我。

我在完成部署之前已经运行tomcat restart,这搞砸了我的网络应用程序。

EC2自动运行tomcat,而tomcat试图连接到未正确配置的数据库连接。

我只需要删除server.xml中的自定义上下文,重新启动tomcat并重新添加上下文。

答案 11 :(得分:-1)

注意:我正在运行Ubuntu

sudo service --status-all

您可以通过键入以下命令来获取所有正在运行的服务的列表,

如果您将Tomcat作为服务运行,它将显示为(“ tomcat”), 因此运行:

sudo service tomcat7 stop

(tomcat7或8,或者取决于您在运行的服务列表中的名称)

否则,如果您正在使用apache tomcat,您将看到(“ apache2”)显示服务列表,然后运行:

sudo service apache2 stop