Сервисная команда не работает с Tomcat7
У меня есть свежая установка Ubuntu 16.04, где я установил Tomcat7, используя apt-get install
и у меня возникли некоторые проблемы при попытке взаимодействия со службой с помощью service
команда.
Я понимаю, что если Tomcat установлен в системе, правильный способ взаимодействия со службой заключается в использовании service
команда.
После перезагрузки системы я вижу, что Tomcat7 развертывает военное приложение, как и ожидалось, и все выглядит правильно в веб-приложении.
Но если я хочу перезапустить мой Tomcat:
sudo service tomcat7 restart
Я вижу в catalina.out
Журнал, что есть некоторые ошибки, вызванные адресом уже используется. Есть любое другое приложение, использующее тот же порт.
Если я попытаюсь остановить кота, использую как всегда service tomcat7 stop
:
usr@Srv2:~$ sudo service tomcat7 stop
[sudo] password for qgenviewer:
usr@Srv2:~$ ps -aux | grep tomcat7
tomcat7 1409 2.5 2.3 9268692 377788 ? Sl 12:11 0:27 /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xms512m -Xmx6144m -XX:+UseConcMarkSweepGC -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -classpath /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/var/lib/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.io.tmpdir=/tmp/tomcat7-tomcat7-tmp org.apache.catalina.startup.Bootstrap start
usr+ 1762 0.0 0.0 21316 924 pts/0 S+ 12:29 0:00 grep -- color=auto tomcat7
Так выглядит service
команда не работает, потому что Tomcat все еще работает. Если я попробую service tomcat7 status
, вывод выглядит следующим образом:
usr@Srv2:~$ sudo service tomcat7 status
● tomcat7.service - LSB: Start Tomcat.
Loaded: loaded (/etc/init.d/tomcat7; bad; vendor preset: enabled)
Active: failed (Result: exit-code) since vie 2016-05-06 12:11:29 CEST; 21min ago
Docs: man:systemd-sysv-generator(8)
Process: 1356 ExecStart=/etc/init.d/tomcat7 start (code=exited, status=1/FAILURE)
Tasks: 38 (limit: 512)
CGroup: /system.slice/tomcat7.service
└─1409 /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.C
may 06 12:11:24 Srv2 systemd[1]: Starting LSB: Start Tomcat....
may 06 12:11:24 Srv2 tomcat7[1356]: * Starting Tomcat servlet engine tomcat7
may 06 12:11:29 Srv2 tomcat7[1356]: ...fail!
may 06 12:11:29 Srv2 systemd[1]: tomcat7.service: Control process exited, code=exited status=1
may 06 12:11:29 Srv2 systemd[1]: Failed to start LSB: Start Tomcat..
may 06 12:11:29 Srv2 systemd[1]: tomcat7.service: Unit entered failed state.
may 06 12:11:29 Srv2 systemd[1]: tomcat7.service: Failed with result 'exit-code'.
may 06 12:28:38 Srv2 systemd[1]: Stopped LSB: Start Tomcat..
Любая помощь в том, что происходит...? Наконец-то выглядит service tomcat7
не работает. Что может быть причиной? Тогда кто запускает службу tomcat при запуске системы? И как я мог остановить или перезапустить сервис tomcat7?
Спасибо за ваше время.
редактировать
Чтобы получить больше информации и следуя совету @Jens Grivolla, это вывод для pstree:
usr@Srv2:~$ pstree -lsup 1409
systemd(1)───java(1409,tomcat7)─┬─{java}(1412)
├─{java}(1418)
...
├─{java}(2262)
└─{java}(2313)
1 ответ
Вы можете попробовать следующее:
- Сначала получите PID работающей службы Tomcat, например,
$ ps aux|grep tomcat
Затем попробуйте посмотреть, как он был запущен с помощью
pstree
(использованиеman pstree
понять используемые варианты), например$ pstree -lsup 26276 systemd(1)───java(26276,tomcat7)─┬─{java}(26277) ├─{java}(26278) ├─{java}(26279) ├─{java}(26280) ├─... └─{java}(1252)
Так что в моем случае он был явно запущен systemd. Если вы видите что-то другое, то, по крайней мере, у вас есть идея, где исследовать...