Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 10 из 12

От GRUB до target: как загружается система

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 7 из 8 · лаба · 25 минсредняя

Служба держит загрузку

После каждой перезагрузки склад полминуты ждёт, а приём заказов так и не поднимается — руками его потом запускают. Коллега уверяет, что зависимости служб настроены. Сделай так, чтобы после перезагрузки приём заказов поднимался сам и не задерживал загрузку.

Ситуация

На складском сервере работают две службы: приём заказов lab-orders (http://127.0.0.1:8090) и хранилище остатков lab-stock. Приём заказов при запуске берёт остатки у хранилища — без них заказы не принимает.

После каждой перезагрузки сервер грузится на полминуты дольше, а lab-orders оказывается упавшей — дежурный потом поднимает службы руками. Коллега уверяет, что зависимости служб настроил; юниты лежат в /etc/systemd/system/.

Машина сейчас — как после такой загрузки: lab-orders только что пыталась запуститься.

Задача

  1. lab-orders сама запускает хранилище lab-stock и стартует после него: зависимости — в её юните (Wants= и After=), встречного порядка нет.
  2. systemd-analyze verify lab-orders.service lab-stock.service не печатает предупреждений.
  3. lab-orders работает, включена при загрузке и отвечает: curl http://127.0.0.1:8090/health.
  4. После перезагрузки (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 с — ещё не выполнена
Ctrl+Enter
Запустит машину node1 · Ubuntu 24.04

Машина запускается

Подсказки

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 с — ещё не выполнена
node1 Ubuntu 24.04

Цели лабы

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 с — ещё не выполнена
Загрузка…