Как я могу убить из Bash все процессы Python, кроме одного сценария Python. (Я знаю его имя, но его pid иногда можно изменить).
Мне нужно что-то вроде, pkill -f "python"
но с исключением конкретного сценария Python.
Пожалуйста, порекомендуйте.
ps aux |grep python |grep -v 'pattern_of_process_you_dont_want_to_kill' |awk '{print $2}' |xargs kill
Обновление: пошаговое объяснение в соответствии с просьбой в комментариях
ps aux |grep python
- показать все процессы, которые соответствуют python
шаблону grep -v 'pattern_of_process_you_dont_want_to_kill'
- исключить процесс, который вы не хотите убивать awk '{print $2}'
- показать второе поле вывода, это PID. xargs kill
- применить kill
команду к каждому входному аргументу (PID).Если вы не знакомы с xargs
командой, я бы посоветовал вам не беспокоиться, если вы не поняли это сразу. Впервые это может показаться довольно хитрым. Я опубликовал очень простой пример его использования, вы можете Google для более.
awk '{print $2}'
- печатает второе полеps
вывода, в текущем случае это такPID
.xargs
применяетkill
команду к каждомуPID