我试图关闭 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 - 应该被杀死吗?
答案 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)
答案 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