当前位置: 首页>>技术教程>>正文


如何在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) 

这是为什么?


@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

是否应该杀死所有这3个过程-1597、1598、1599?

最佳方案

范,如果您的雄 cat 无法正常关机,我会使用

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

次佳方案

尝试

/etc/init.d/tomcat stop

(也许您必须在tomcat之后写点东西,只需按tab一次)

编辑:并且您还需要以root身份进行操作。

第三种方案

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

sudo service tomcat7 stop

要么

sudo tomcat7 restart (if you need a restart)

第四种方案

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

ps aux | grep tomcat | awk ‘{print $2}’ | xargs杀死-9

第五种方案

若要使用更优美的方式,请尝试以下操作:

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

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

sudo服务–status-all

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

sudo服务tomcat7停止

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9199.html,未经允许,请勿转载。