Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Программно убить процесс


Автор: LeoGL 9.10.2012, 16:35
Всем привет. 

Как можно убить процесс если (1) его PID при каждом запуске меняется и (2) его имя в tasklist неоднозначно (то бишь, с таким именем есть несколько процессов)?

Процессы запускаю в яве с помощью ProcessBuilder("cmd.exe,..."). Вызываю Process.destroy() - процесс как работал, так и работает.

Спасибо.

Автор: LSD 9.10.2012, 18:30
А запускать через cmd.exe обязательно? Просто destroy() убивает сам cmd.exe, но не процессы который был запущены из cmd.exe.

Автор: LeoGL 9.10.2012, 19:25
Цитата(LSD @ 9.10.2012,  16:30)
А запускать через cmd.exe обязательно? Просто destroy() убивает сам cmd.exe, но не процессы который был запущены из cmd.exe.

ну в принципе да, обязательно. 

Если конкретней, то это run.bat от jboss as. Запускаю две инстанции на одном компе (отсюда два процесса с одним именем), а потом хочу также программно убить одну из них. 

Автор: LSD 10.10.2012, 10:22
Цитата(LeoGL @  9.10.2012,  20:25 Найти цитируемый пост)
Если конкретней, то это run.bat от jboss as. Запускаю две инстанции на одном компе (отсюда два процесса с одним именем), а потом хочу также программно убить одну из них.  

Может и останавливать тогда с помощью батника?

Автор: LeoGL 10.10.2012, 13:53
Было бы разумно, но дело в том, что я хочу не остановить, а убить процесс.

Автор: jk1 11.10.2012, 07:42
Используйте

Код

netstat -a -o


вывод отфильтруйте по порту, на котором висит JBoss и получите PID. Дальше убейте процесс по PID.

Автор: LeoGL 11.10.2012, 12:37
Ух ты, а это уже теплее. 

Спасибо. Плюсовать репутацию пока не могу, постов мало.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)