如何关闭Ubuntu中的Tomcat?

Van*_*aff 18 ubuntu tomcat

我试图关闭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)
Run Code Online (Sandbox Code Playgroud)

这是为什么?


@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 - 都应该被杀死吗?

the*_*ejh 52

尝试

/etc/init.d/tomcat stop
Run Code Online (Sandbox Code Playgroud)

(也许你必须写一些东西tomcat,只需按一次标签)

编辑:你还需要以root身份执行.

  • 这是正确的答案.杀死是坦率地过度杀戮 (3认同)
  • 如果这对某些人不起作用,你必须把tomcat和你安装的版本安装,例如我安装了tomcat 7,所以我不得不把/etc/init.d/tomcat7停下来 (2认同)

hvg*_*des 21

范,在你的情况下tomcat不会正常关闭,我会用

ps ax | grep java
Run Code Online (Sandbox Code Playgroud)

找到java进程号.如果该命令返回某些内容,则运行

sudo kill -9 pid
Run Code Online (Sandbox Code Playgroud)

其中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
Run Code Online (Sandbox Code Playgroud)

38678是进程号.请注意,可能还有其他正在运行的Java进程,您可能不想要杀死它们.此外,此输出来自mac,因此在ubuntu上看起来会略有不同.

  • 难道`kill -9`不是太激进了吗? (4认同)

use*_*362 14

尝试使用此命令:(这将停止tomcat servlet这真的有帮助)

sudo服务tomcat7停止

要么

sudo tomcat7 restart(如果需要重启)