Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
Примечание. Убейте процесс по его имени или команде, запустившей процесс (достаточно последовательной части).
1. Используйте одну команду
ps -ef | имя процесса/команда для запуска процесса | grep -v grep | awk '{print $2}' |
тест:
Входной терминал:
sleep 200 &
sleep 200 &
ps -ef | grep sleep | grep -v grep | awk ‘{print $2}’ | xargs kill -9
Результат выполнения:
[1]- Убит сон 200
[2]+ Убит сон 200
2. Пишите сценарии
Имя сценария Linux: kill_process.sh
#!/bin/bash
# Имя сценария: kill_process.sh # Функция сценария: принудительно убить процесс методом kill -9 #1 Запросить идентификатор процесса через ps # 2Используйте kill -9, чтобы принудительно завершить процесс #Метод запуска: /bin/bash имя процесса kill_process.sh
# Если количество параметров не равно 1, выдать ошибку и выйти из программы если [ $# -ne 1 ] затем echo "Неверное количество параметров. Используйте этот метод для запуска: /bin/bash имя процесса kill_process.sh" выход 1 фи
# Получаем имя процесса, который нужно убить pName=$1
<<! Функция: убить программу по имени процесса. Параметры: имя процесса Возвращаемое значение: Нет ! kill_processes(){ # Получить идентификатор процесса pids=$(ps -ef | grep “$1” | grep -v grep | grep -v $0 | awk ‘{print $2}’) for pid in $pids do kill -9 $pId done }
Процессы, которые эхо будут завершены: эхо ———————————————————— # Запросить процесс, содержащий имя процесса, на основе имени процесса и исключить процесс запроса grep и этот процесс сценария ps -ef | grep "$pName" | grep -v grep | эхо ———————————————————— # Подтвердите, следует ли завершить программу read -t 10 -p "Эти процессы будут автоматически завершены через 10 секунд. Пожалуйста, подтвердите, нужно ли завершать эти процессы (да/нет):" ipt
случай $ipt в "н") echo «==Я пока не хочу их убивать» выход 0;; «у») echo "Да, убей их сейчас" Kill_processes $pName;; "") # # # # Информация о подтверждении не введена, по умолчанию убейте программу эхо "" echo "Начать автоматическое уничтожение этих программ" Kill_processes $pName;; *) echo "Ваш ввод неверен, скрипт будет завершен" выход 1;;
esac
тест:
# Запускаем две команды задержки в фоновом режиме терминала
sleep 200 &
sleep 200 &
# Запускаем скрипт
/bin/bash kill_process.sh Sleep или /bin/bash kill_process.sh “sleep 200”
Результат выполнения:
Процессы, которые будут прекращены: —————————————————————— python 13583 13550 0 19:42 pts/6 00:00:00 sleep 200 python 13584 13550 0 19:42 pts/6 00:00:00 sleep 200 —————————————————————— Эти процессы будут автоматически завершены через 10 секунд. Подтвердите, следует ли завершать эти процессы (да/нет): да. Да, убей их сейчас [1]- Убит сон 200 [2]+ Убит сон 200
Будет очень хлопотно, если вы будете использовать команду: «/bin/bash путь к программе сценария» для запуска сценария каждый раз.
Мы можем добавить эту команду в переменные среды, что значительно упростит ее использование.
Например, мы добавляем его в переменные среды текущего пользователя (вы также можете изменить его глобально, чтобы он вступил в силу для всех пользователей):
# Изменить файл текущей переменной среды
vi ~/.bash_profile
# Добавляем последнюю строку
my_kill="/bin/bash путь к сценарию"
После сохранения выполните source ~/.bash_profile, чтобы изменения вступили в силу немедленно.
После этого, пока мы находимся под текущим пользователем, мы можем использовать команду: «Программа $my_kill» для ее выполнения.
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/192889.html Исходная ссылка: https://javaforall.cn