Подтвердить что ты не робот

Как SHUTDOWN Tomcat в Ubuntu?

Я попытался отключить tomcat, как показано ниже, но tomcat все еще работает (http://localhost: 8080/)

[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)

Почему это?


Обновление1 для @hvgotcodes:

Вывод 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?

4b9b3361

Ответ 1

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

Try

/etc/init.d/tomcat stop

(возможно, вам нужно что-то написать после tomcat, просто нажмите вкладку один раз)

Изменить: И вам также нужно сделать это как root.

Ответ 3

Попробуйте использовать эту команду: (это остановит сервлет tomcat, это действительно помогает)

sudo service tomcat7 stop

или

Перезагрузка sudo tomcat7 (если вам нужен перезапуск)

Ответ 4

Чтобы остановить процесс apache, попробуйте выполнить эту команду

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

Ответ 5

Для более изящного способа попробуйте следующее:

Предостережение: я запускаю Debian 7, а не Ubuntu, хотя это производная Debian

Если вы используете Tomcat в качестве службы, вы можете получить список всех запущенных сервисов, набрав:

sudo service --status-all

Я запускаю Tomcat 7, который отображается в tomcat7 в указанном списке. Затем, чтобы закрыть его, просто введите:

sudo service tomcat7 stop

Ответ 6

Если вы установили tomcat вручную, запустите shutdown.sh(/.../tomcat/bin) от терминала до , чтобы закрыть его.

Ответ 7

При запуске Tomcat под jsvc он не будет реагировать на сигнал выключения на указанном порту выключения, который отправляется из shutdown.sh script. Единственный способ, который я знаю, - это убить процесс, однако вам нужно будет убить те, которые перечислены как jsvc, а не java.

Ответ 8

если вы запустите эту команду

 [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

Ответ 9

Ни один из предлагаемых решений не работал у меня.

Я выполнил tomcat restart, прежде чем завершить развертывание, которое испортило мое веб-приложение.

EC2 запускал tomcat автоматически, и tomcat застрял, пытаясь подключиться к соединению с базой данных, которое не было настроено должным образом.

Мне просто нужно было удалить свой настраиваемый контекст в server.xml, перезапустить tomcat и снова добавить контекст.