Убить все задачи с PID выше определенного целого числа с помощью bash

Как я могу получить и уничтожить все процессы с PID выше, например, 1000?

Использование таких команд, как ps -A а также top подходит для просмотра списка процессов, но как получить только PID?

Логика сравнения чисел и убийства задач на самом деле не проблема. Просто в вопросе, чтобы описать то, что я хочу сделать более четко.

2 ответа

Решение
ps | tr -s ' ' | cut -d ' ' -f 2

даст вам список PID. cut занимает второе поле вывода, разделенное пробелами, но перед этим мы используем tr выжать несколько пробелов. Затем вы можете передать это через

egrep '\d{4}\d*'

выбрать все числа свыше 1000. Тогда, возможно, вы могли бы отправить его в xarg для убийства.

1000 легко, но для произвольного числа, такого как 32768, вам может понадобиться что-то вроде sed для фильтрации.

Вы можете использовать эту команду:

ps -ef | grep "your_process" | awk '{print $ 2}' | grep -v 'grep' | XARGS убивают

Примечание: "Your_process" будет вашим "PID"

Остальное:

ps -ef | grep "your_process" | awk '{print $ 2}' | XARGS убивают

стоило бы попробовать

Другие вопросы по тегам