labctl.graywrk.ru
войти регистрация

Починить упавший сервис под supervisord hard

name
supervisord-down
image
labctl-base:3.12
timeout
60s
tags
services, troubleshooting, config

задание

Починить упавший сервис под supervisord

Микросервис app должен слушать на порту 8080, но он не поднимается.
Контейнер управляется через supervisord. Разберитесь, почему сервис падает,
починьте конфиг и перезапустите его так, чтобы он стабильно отвечал на порту.

Симптомы

$ supervisorctl status
app     FATAL     Exited too quickly (process log may have details)

$ supervisorctl tail -20000 app stderr
... (подсказка здесь, но не прямое решение)

$ curl -fsS http://127.0.0.1:8080/health
curl: (7) Failed to connect to 127.0.0.1 port 8080

Что нужно

curl http://127.0.0.1:8080/health возвращает ok (HTTP 200).

Чего НЕ нужно трогать

  • Не правьте сам /app/server.py — он корректен. Поломка в конфигурации
    запуска
    , а не в коде сервиса.

Почему это hard

Причина падения не очевидна из симптома — нужно прочитать логи, понять
файловую структуру, проверить пути в конфиге и права на них. Один
supervisorctl restart app не поможет, пока корневая причина не устранена.
Часто на собеседованиях отличают тех, кто умеет читать ошибку, от тех, кто
просто перезапускает.

checking… сессия: up → shell → check → down

попытки

  • загрузка…