
Я пишу скрипт для остановки приложения. Иногда приложение не хочет останавливаться. Поэтому после нескольких минут паузы, если приложение все еще работает, я хочу его убить. После нескольких неудачных попыток команды kill я попробовал добавить -9, чтобы принудительно остановить его. Похоже, это не работает. Кто-нибудь знает, как заставить это работать, даже если мне нужно использовать другую команду, я открыт для новых идей. :-)
Ниже приведена моя командная строка:
ps -ef|grep -v grep|grep <process_name>|awk -F' ' '{print $2}' |xargs kill -9
Заранее спасибо.
решение1
Пример того, как закрыть php
процессы в пакетном режиме. php
Вы можете заменить его, используя любое имя вашего процесса:
ps -aux | grep php | awk '{print $2}' | xargs kill -9
решение2
@muru был прав, но в последнее время я обнаружил, что использование опции '-f' для pkill предпочтительнее. Соответствует всему процессу и списку аргументов. Здесь у нас есть несколько серверов, на которых запущены процессы Tomcat и Logstash (отправляющие данные в Elastic). Поэтому 'kill -9 java' для остановки процесса Tomcat также останавливает процесс Logstash.
pkill -9 -f 'pattern to match'
Пример:
pkill -9 -f '/opt/tomcat/'