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] ~]$
Ответы
Ответ 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-программе, которая содержит основной метод.