|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
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
Попробуйте, надеюсь поможет. |
|
|
|
 |
|
|
|