Как 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?
Ответы
Ответ 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 и снова добавить контекст.