Подтвердить что ты не робот

Linux script, чтобы убить Java-процесс

Я хочу linux script, чтобы убить программу java, запущенную на консоли.

Ниже показан процесс, выполняющийся как jar.

[[email protected] ~]$ ps -ef |grep java
rapp    9473    1  0 15:03 pts/1    00:00:15 java -jar wskInterface-0.0.1-SNAPSHOT-jar-with-dependencies.jar
rapp   10177  8995  0 16:00 pts/1    00:00:00 grep java
[[email protected] ~]$
4b9b3361

Ответ 1

Вы можете просто использовать pkill -f следующим образом:

pkill -f 'java -jar'

РЕДАКТИРОВАТЬ: Чтобы убить определенный java-процесс, выполняющий конкретную банку, используйте эту команду pkill на основе регулярных выражений:

pkill -f 'java.*lnwskInterface'

Ответ 2

Если вы просто хотите убить все/все java-процессы, тогда вам нужно всего лишь:

killall java

Если, однако, вы хотите убить процесс wskInterface, в частности, вы больше всего там, вам просто нужно удалить идентификатор процесса;

PID=`ps -ef | grep wskInterface | awk '{ print $2 }'`
kill -9 $PID

Должно ли это сделать, возможно, есть более простой способ, хотя...

Ответ 3

Используйте jps, чтобы просмотреть запущенные java-процессы. Команда возвращает идентификатор процесса вместе с основным классом. Вы можете использовать команду kill, чтобы убить процесс с возвращенным идентификатором или использовать следующий один лайнер script.

kill $(jps | grep <MainClass> | awk '{print $1}')

MainClass - это класс в вашей запущенной java-программе, которая содержит основной метод.