Как убить все фоновые процессы Celery

Уничтожение всех процессов celery включает в себя 'grep'ing по команде 'ps' и выполнение команды kill по всем PID. Greping

в команде ps приводит к отображению информации о собственном процессе команды grep. Для того чтобы пропустить этот PID, 'grep

Команда

-v grep" - это пипл, который выполняет условие "not" на ключе поиска "grep". Команда 'awk' - это

используется для фильтрации только 2-го, а команда 'tr' переводит результат вывода команды 'awk' из строк в столбцы.

Передача команды 'kill' не сработала, поэтому весь процесс был установлен как подмена команды, т.е.

'$()'. Перенаправление в конце не является обязательным. Она нужна только для того, чтобы заглушить конечный вывод в фон.

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

Помимо стандартных unix способов уничтожения процессов Celery, Celery также предоставляет API для уничтожения всех рабочих, прослушивающих определенного брокера.

  1. Чтобы убить, используйте python. Вы можете обратиться к документации здесь или здесь. Первая функция вызывает вторую внутреннюю функцию.

app.control.shutdown()

где app - экземпляр приложения celery, настроенный с брокером.

  1. Для этого также можно использовать интерфейс командной строки Celery.

celery -A имя_приложения control shutdown

Вернуться на верх