2010-11-01 15 views
16

Me trataron de apagar Tomcat como se muestra a continuación, pero Tomcat todavía parece estar funcionando (http: // localhost: 8080 /)Cómo APAGAR Tomcat en Ubuntu?

[email protected]:~$ /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) 

¿Por qué?


Update1 para @hvgotcodes:

salida de -ax ps | 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

Deberían todos estos 3 procesos - 1597, 1598, 1599 - ser asesinado?

+1

¿Probaste con privilegios de superusuario? –

+0

Es muy probable que su Tomcat no se esté ejecutando y shutdown.sh no se puede conectar a su interfaz de administración para apagarlo. –

+1

¿Hay otra aplicación/servicio de escucha en el puerto 8080? – darioo

Respuesta

21

Van, en su caso en el que Tomcat no apagado normalmente, me gustaría utilizar

ps ax | grep java 

para encontrar el número de proceso java.Si ese comando devuelve algo, ejecute

sudo kill -9 pid 

donde pid es el número de proceso. La opción -9 significa "simplemente mátalo", y normalmente no necesitas este tipo de cosas, pero dado que en tu situación el proceso no se detiene normalmente, lo necesitas.

La salida del primer comando debe ser similar

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 es el número de proceso. Tenga en cuenta que puede haber otros procesos Java en ejecución que es posible que no desee eliminar. Además, esta salida es de un Mac, por lo que Ubuntu parecerá un poco diferente.

+4

¿No es 'kill -9' un poco demasiado agresivo? – thejh

+1

@thejh, he estado siguiendo sus hilos, él necesita simplemente matarlo en este caso. – hvgotcodes

+0

Creo que 'killall' sería mejor en este caso, usando' ps ax | awk '/ java/&&/tomcat/&&!/awk/{print $ 1}' 'daría solo los procesos relacionados con tomcat con nada más, puede dar esta salida a' killall' y guardar la mayor parte de la molestia. – Yaron

51

Trate

/etc/init.d/tomcat stop 

(tal vez usted tiene que escribir algo después de tomcat, simplemente presiona el tabulador una vez)

Editar: Y también hay que hacerlo como root.

+3

Esta es la respuesta correcta. Matar es francamente exagerar – roshan

+0

este trabajó para mí. /usr/share/tomcat6/bin/shutdown.sh lanzó una excepción que decía "SEVERE: Catalina.stop: java.io.FileNotFoundException: /usr/share/tomcat6/conf/server.xml (No hay tal archivo o directorio)" – Nerrve

+2

En el caso de que esto no funcionara para algunas personas, debe poner tomcat y la versión que ha instalado, por ejemplo, tuve instalado Tomcat 7, así que tuve que poner /etc/init.d/tomcat7 detener –

1

Al ejecutar Tomcat en jsvc, no responderá a la señal de apagado en el puerto de apagado especificado que se envía desde el script shutdown.sh. La única forma de que soy consciente es de matar el proceso, sin embargo, tendrás que eliminar los que figuran como jsvc, no java.

1

si se ejecuta este comando

[email protected]:~$ /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 

[email protected]:~$ 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 
+0

no funcionó para mí, y tampoco tiene sentido, ya que comencé con mi propio ID de usuario. – zinking

+0

@zinking ¿Has probado con sudo? – Sheel

3

Para detener un proceso de apache tratar este comando

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

+0

¿No crees que sería mejor usar 'killall'? – Yaron

+0

Esto matará el pid de 'grep'. Simplemente ejecute 'ps aux | grep tomcat' varias veces para ver ... –

10

Trate de usar este comando: (esto detendrá servlet Tomcat esto realmente ayuda)

servicio sudo tomcat7 detener

o

sudo tomcat7 reiniciar (si necesita un reinicio)

+0

'sudo service tomcat7 restart' (si necesita un reinicio) – Mattijn

2

Para una forma más elegante, intente lo siguiente:

Advertencia: Estoy corriendo Debian 7, Ubuntu no, aunque es un derivado de Debian

Si se está utilizando Tomcat como un servicio, puede obtener una lista de todos los servicios que se ejecutan escribiendo:

sudo servicio --status todo

estoy corriendo Tomcat 7, que se muestra como tomcat7 en dicha lista. Entonces, para apagarlo solo tipo:

servicio sudo tomcat7 dejar de

2

Si ha instalado tomcat manualmente, ejecute el shutdown.sh(/.../tomcat/bin) desde la terminal hasta cerró abajo fácilmente.

-1

Ninguna de las soluciones sugeridas funcionó para mí.

He corrido tomcat restart antes de completar la implementación que dañó mi aplicación web.

EC2 ejecutó tomcat automáticamente y tomcat se atascó tratando de conectarse a una conexión de base de datos que no estaba configurada correctamente.

justo lo que necesitaba para eliminar mi contexto personalizado en server.xml, reiniciar Tomcat y añadir el contexto de nuevo.

+0

¿En serio no pudo 'matar -9'? Encuentro esto improbable. –

+0

murió pero se lanzó automáticamente de nuevo. –