Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Docker: sigkill

Что происходит, если контейнер не завершился после SIGTERM?

Вопрос проверяет понимание fallback-механизма Docker и последствий некорректного завершения приложений.

Короткий ответ

Если контейнер не завершился после получения SIGTERM, Docker отправляет ему SIGKILL. Этот сигнал принудительно завершает процесс без возможности обработки. Контейнер будет остановлен в любом случае. Такое завершение может привести к потере данных. Поэтому приложения должны корректно реагировать на SIGTERM.

Длинный ответ

Docker всегда гарантирует, что контейнер будет остановлен, даже если приложение внутри него зависло или игнорирует сигналы.

Определение

SIGKILL — это сигнал, который немедленно завершает процесс без возможности перехвата.

1. Таймаут ожидания

После отправки SIGTERM Docker:

  • ждёт заданное время (--time);

  • не проверяет, «что делает» процесс внутри.

Если таймаут истёк — считается, что корректное завершение невозможно.

2. Принудительное завершение

Docker отправляет SIGKILL:

  • процесс завершается мгновенно;

  • cleanup-код не выполняется;

  • данные в памяти теряются.

3. Возможные последствия

Принудительное завершение может привести к:

  • потерянным данным;

  • неконсистентному состоянию;

  • оборванным соединениям.

Особенно опасно для:

  • баз данных;

  • файловых операций;

  • stateful-сервисов.

4. Как этого избежать

Рекомендуемые практики:

  • быстро обрабатывать SIGTERM;

  • не выполнять долгие блокирующие операции при shutdown;

  • корректно настраивать --time.

5. Краткий вывод

Если контейнер не реагирует на SIGTERM, Docker использует SIGKILL как крайнюю меру. Это гарантирует остановку, но может быть опасно для данных, поэтому приложения должны уметь корректно завершаться.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Docker

    Docker

Ключевые слова

#sigkill

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.