Одностроковый скрипт для завершения всех процессов Celery

Как быстро завершить все процессы, порожденные Celery? Внутри пример с объяснениями. Удобно использовать для тестирования и отладки.

Достаточно запустить:

kill -9 $(ps aux | grep celery | grep -v grep | awk '{print $2}' | tr '\n' ' ') > /dev/null 2>&1

Вывод команды ps направляется к вводу команды grep, затем к полученным идентификаторам процессов (PID) применяется kill. Вывод ps aux | grep celery включает также информацию о самом процессе grep. Чтобы не учитывать PID, относящийся к grep-процессу, используется grep -v grep; это фактически условие отрицания ключа поиска «grep». Команда awk используется для выбора 2-й колонки, а tr переводит результат awk из строк в столбцы. Конвейер c kill не работает, поэтому используется подстановка результатов выполнения, т. е. $().

Перенаправление вывода в конце не обязательно. Его назначение — весь вывод отправить в «черную дыру».