Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

как остановить из консоли web приложение (jetty)
Список форумов
 ->  Основы веб-программирования на Java


 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
a_subscriber : 342
Бывалый

СообщениеЯнв 26, 2012 12:45 
Ответить с цитатой
есть web приложение, которое (использует Jetty в качествер сервлер контейнера). Приложение запускается из консоли и висит на определенном порту.

java -jar myapp.jar

Чтобы остановить из консоли (из той же из которой было запушено) приложение я нажимаю Ctrl-C и приложение заканчивает работу. ОК.

Но мне нужно из другой консоли остановить приложение. Причем на Linux-e.
Я правильно понимаю, что для этого нужно будет написать скрипт на bash-e ?
К началу Посмотреть профиль Отправить личное сообщение
Skipy : 4805
Я тут живу!
Откуда: Москва, Россия

СообщениеЯнв 26, 2012 14:15 
Ответить с цитатой
Ну да, список процессов через ps, grep для получения нужного pid, дальше kill -9 pid
_________________
С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других!
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
a_subscriber : 342
Бывалый

СообщениеЯнв 26, 2012 14:55 
Ответить с цитатой
Skipy писал(а):
Ну да, список процессов через ps, grep для получения нужного pid, дальше kill -9 pid


как-то "грубовато". А более мягко можно сделать? Без убийства процесса. А скажем послать приложению сообщение, и оно само завершит работу.
?
К началу Посмотреть профиль Отправить личное сообщение
a_subscriber : 342
Бывалый

СообщениеЯнв 26, 2012 15:32 
Ответить с цитатой
Skipy писал(а):
Ну да, список процессов через ps, grep для получения нужного pid, дальше kill -9 pid


к тому же ваше решение платформено зависимое. Если завтра понадобится сделать эту задачу для винды, то нужно будет писать подобный скрипт для винды (например через bat файл).
Как вариант в самом приложении написать класс , который будет отвечать за выход из приложения. Например ему посылается сообщение "stop" и этот класс завершает работу приложения
К началу Посмотреть профиль Отправить личное сообщение
a_subscriber : 342
Бывалый

СообщениеЯнв 30, 2012 20:58 
Ответить с цитатой
Skipy писал(а):
Ну да, список процессов через ps, grep для получения нужного pid, дальше kill -9 pid

ok,написал скрипт (sh). Работает.
Код:

..
pid=`pgrep -f myapp.jar`
kill $pid
..


А какие команды можно использовать, чтобы написать подобный скрипт, но уже для Windows?
К началу Посмотреть профиль Отправить личное сообщение
Skipy : 4805
Я тут живу!
Откуда: Москва, Россия

СообщениеЯнв 31, 2012 11:37 
Ответить с цитатой
a_subscriber писал(а):
Skipy писал(а):
Ну да, список процессов через ps, grep для получения нужного pid, дальше kill -9 pid


к тому же ваше решение платформено зависимое. Если завтра понадобится сделать эту задачу для винды, то нужно будет писать подобный скрипт для винды (например через bat файл).


Вы просили рецепт для linux и bash.

Цитата:
Как вариант в самом приложении написать класс , который будет отвечать за выход из приложения. Например ему посылается сообщение "stop" и этот класс завершает работу приложения


Скорее искать такой класс в jetty. Останавливать контейнер из развернутого в нем приложения - ПЛОХАЯ практика.
_________________
С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других!
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
php-coder : 336
Бывалый
Откуда: Новосибирск

СообщениеФев 06, 2012 12:50 
Ответить с цитатой
Maven плагин для Jetty позволяет сделать такое с использованием ещё одного порта. Когда на него приходит определённая строка, то Jetty останавливается. Сейчас погуглил и нашел, что такое можно сделать и без Maven, а вручную:
Код:

java -DSTOP.PORT=8079 -DSTOP.KEY=secret -jar start.jar
java -DSTOP.PORT=8079 -DSTOP.KEY=secret -jar start.jar -stop

См. http://alaminsumon.blogspot.com/2009/06/how-to-stop-and-start-jetty-server-from.html

Попробуйте, надеюсь поможет.
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
 
Начать новую тему  Ответить на тему
Страница 1 из 1
Список форумов
 -> Основы веб-программирования на Java


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru