Сценарий

Служба числится запущенной, но не отвечает

Init-скрипт говорит running и отказывается стартовать. На порту при этом никто не слушает. Разберись, кому он верит.

Мониторинг с ночи пишет, что orders-api не отвечает. Ты заходишь на машину и первым делом спрашиваешь init-скрипт. Он говорит, что служба работает. Мониторинг с этим не согласен, и твой собственный запрос тоже. Ночью на машине никто ничего не делал, по крайней мере руками.

Симптом

Три команды, и их ответы противоречат друг другу.

$ sudo service orders-api status
orders-api is running

$ curl -sS --max-time 3 http://localhost:8080/
curl: (7) Failed to connect to localhost port 8080 after 0 ms: Couldn't connect to server

$ sudo service orders-api start
$ echo $?
1

Статус говорит running. Порт 8080 отвечает отказом: код 7 у curl значит, что соединение никто не принял, на этой паре адрес:порт нет слушателя. А старт молча выходит с кодом 1 и не печатает даже своего обычного orders-api started. Три утверждения про одну службу, и вместе они не сходятся. Твоя задача - понять, о чём на самом деле говорит каждое.

Что надо получить

Четыре условия. По http://localhost:8080/ приходит orders-api ok. Файл /run/orders-api.pid существует, число в нём - это pid живого процесса orders-api, и именно этот процесс держит порт 8080. Агент резервного копирования, который работает на той же машине, остался жив: он в этой истории ни при чём. И файлы /usr/local/bin/orders-api и /etc/init.d/orders-api не изменены: чинится состояние машины, а

Бесплатно с аккаунтом

Дальше бесплатно, нужен только аккаунт

Урок открывается после входа. Создай бесплатный аккаунт, чтобы дочитать его и запустить лабораторию.

Создать бесплатный аккаунт

Уже есть аккаунт? Войти