Убить все задачи с 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 убивают
стоило бы попробовать