Как я могу убить из Bash все процессы Python, кроме одного сценария Python. (Я знаю его имя, но его pid иногда можно изменить).
Мне нужно что-то вроде, pkill -f "python"но с исключением конкретного сценария Python.
Пожалуйста, порекомендуйте.
Как я могу убить из 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