Шаг 7 из 8 · лаба · 25 мин
Служба держит загрузку
После каждой перезагрузки склад полминуты ждёт, а приём заказов так и не поднимается — руками его потом запускают. Коллега уверяет, что зависимости служб настроены. Сделай так, чтобы после перезагрузки приём заказов поднимался сам и не задерживал загрузку.
Ситуация
На складском сервере работают две службы: приём заказов lab-orders (http://127.0.0.1:8090) и
хранилище остатков lab-stock. Приём заказов при запуске берёт остатки у хранилища — без них заказы
не принимает.
После каждой перезагрузки сервер грузится на полминуты дольше, а lab-orders оказывается упавшей —
дежурный потом поднимает службы руками. Коллега уверяет, что зависимости служб настроил; юниты
лежат в /etc/systemd/system/.
Машина сейчас — как после такой загрузки: lab-orders только что пыталась запуститься.
Задача
lab-ordersсама запускает хранилищеlab-stockи стартует после него: зависимости — в её юните (Wants=иAfter=), встречного порядка нет.systemd-analyze verify lab-orders.service lab-stock.serviceне печатает предупреждений.lab-ordersработает, включена при загрузке и отвечает:curl http://127.0.0.1:8090/health.- После перезагрузки (
sudo reboot)lab-ordersподнимается сама с первой попытки и держит загрузку не дольше 10 секунд.
Ограничения
- Код приложений —
/usr/local/bin/order-deskи/usr/local/bin/stock-store— не меняй. - Перезагружать машину можно сколько угодно: терминал покажет загрузку и снова войдёт под
student. «Проверить» смотрит загрузку, которая прошла после подготовки машины, поэтому перезагрузи её после правки.
Интернета на машине нет, всё нужное установлено. Как идёт запуск службы, видно в
systemctl status lab-ordersиjournalctl -u lab-orders; что держит загрузку — вsystemd-analyze blameиsystemd-analyze critical-chain.
Лаба · самостоятельно
Команды в этой лабе не даны: набирай их в терминале сам. Цели проверяются на машине после каждой команды.
Цели
0 из 4-
lab-orders сама запускает хранилище lab-stock и стартует после него (Wants= и After=), встречного порядка нет — ещё не выполнена
-
systemd-analyze verify lab-orders.service lab-stock.service — без предупреждений — ещё не выполнена
-
lab-orders работает, включена при загрузке и отвечает на http://127.0.0.1:8090/health; код приложений прежний — ещё не выполнена
-
После перезагрузки (sudo reboot) lab-orders поднялась сама с первой попытки и держала загрузку не дольше 10 с — ещё не выполнена
Машина запускается
Подсказки
0 из 3Цели лабы
0 из 4-
lab-orders сама запускает хранилище lab-stock и стартует после него (Wants= и After=), встречного порядка нет — ещё не выполнена
-
systemd-analyze verify lab-orders.service lab-stock.service — без предупреждений — ещё не выполнена
-
lab-orders работает, включена при загрузке и отвечает на http://127.0.0.1:8090/health; код приложений прежний — ещё не выполнена
-
После перезагрузки (sudo reboot) lab-orders поднялась сама с первой попытки и держала загрузку не дольше 10 с — ещё не выполнена
Цели проверяются на машине после каждой команды.