2013-09-12 4 views
2

Im работает файл jar как часть большого веб-приложения. Большинство приложений написано на php, но есть один большой .jar-файл, с которым он взаимодействует. Чтобы запустить этот файл банки я использую SSH для подключения к серверу, перейдите в каталог и запустить его по телефону:Остановить файл java, запущенный в ssh

java -jar file_name.jar 

Если я хочу, чтобы отключить этот файл, что команда SSH для этого?

+1

основном 'убить -9 PID' (и более мягкие варианты) Где PID является идентификатор процесса процесса Java ... ([соответствующий пост] (http://stackoverflow.com/questions/ 2541597/how-to-gracefully-handle-the-sigkill-signal-in-java)) Или вы, вероятно, могли бы сделать изящное закрытие JMX. – ppeterka

ответ

3

Соглашаясь с другими комментариями и ответами, я хотел бы отметить часто забытое jps инструмент в комплекте с JDK-х

[email protected]:~$ jps -v 
15688 Jps -Dapplication.home=/usr/lib/jvm/java-7-oracle -Xms8m 

в котором перечислены все запущенные Java-процессы на хосте (может понадобиться до sudo, если процесс не был запущен вашим пользователем входа).

Итак, с какой командной строки магии, такие как

kill -9 `jps -v | grep file_name.jar | awk {'print $1'}` 

вы бы достичь своей заявленной цели.

Приветствия,

2

Если вы:

ps aux 

или что-то подобное (см man ps для множества различных возможных команд), вы должны быть в состоянии найти PID процесса Java (может быть трудно, если есть много процессов, ява Бег*). Затем сделайте:

kill PID 

Если это не сработает, попробуйте:

kill -9 PID 

Но это не даст этому процессу возможность закрыть чисто.

*) Причина, по которой это может быть сложно при работе многих java-процессов, заключается в том, что на некоторых версиях ОС, версиях Java и т. Д. Имя процесса может быть просто «java», что затрудняет их различение.

Обновление: Или вы можете использовать pgrep -lf file_name.jar, чтобы получить PID проще.
См https://linux.die.net/man/1/pgrep

+1

С 'pgrep -lf file_name.jar' вы найдете PID быстрее. –

+0

Я не знал о 'pgrep'. Звучит как полезная команда. Я использовал 'ps aux | grep [KEY] ', когда мне это нужно, но это опять-таки будет проблемой, если в java-процессах нет полезных имен, но я не уверен, что это проблема много (я просто столкнулся с ней один или два раза в прошлом) :) –

Смежные вопросы