Починить упавший сервис под supervisord
- имя
supervisord-down- образ
python:3.12-slim- таймаут
- 60с
проверка…
Задание
Починить упавший сервис под 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 не поможет, пока корневая причина не устранена.
Часто на собеседованиях отличают тех, кто умеет читать ошибку, от тех, кто
просто перезапускает.
Подсказки
Hints: supervisord-down
supervisorctl status— какой статус у программы?FATAL= падает при старте.supervisorctl tail -20000 app stderr— текст последней ошибки. Это главный источник правды.- Прочитайте
/etc/supervisor/conf.d/app.confстроку за строкой. Любой путь в нём должен существовать, аuser=должен иметь права на чтениеcommand. - Файл лога в конфиге ссылается на каталог — кто его создаст, и у кого есть права туда писать?
- После правки конфига:
supervisorctl reread && supervisorctl update && supervisorctl restart app. - Проверка:
curl -i http://127.0.0.1:8080/healthдолжно дать 200 ok. - Если страшно трогать код сервиса — не трогайте, он корректен. Поломка в конфигурации запуска.
Терминал
Закрывается при остановке сессии.
Последние попытки
- Загрузка…
Разовый запуск (smoke-тест)
Атомарный цикл up → check → down. Полезно для CI; без предварительной подготовки состояния проверка завершится с ошибкой.