← До фільтрів та технологій

← До списку лабораторних по Linux

Linux Лабораторна 92: Аналіз причин падіння сервісу

Технологія: Linux

Номер лабораторної: 92 · Рівень: middle

Тема: Налагодження падаючого systemd сервісу

Повний опис / сценарій лабораторної:

Мета: відпрацювати техніку пошуку причин падіння systemd сервісу по логах, статусу та параметрах рестарту.



Крок 1. Створити скрипт який випадково завершується з помилкою.

Команда: echo -e "#!/usr/bin/env bash\nif [ \"$RANDOM\" -gt 20000 ]; then exit 1; else sleep 5; fi" | sudo tee /usr/local/bin/lab92.sh; sudo chmod +x /usr/local/bin/lab92.sh



Крок 2. Створити unit файл сервісу.

Команда: sudo nano /etc/systemd/system/lab92.service

Приклад вмісту:

[Unit]

Description=Unstable lab92 service



[Service]

ExecStart=/usr/local/bin/lab92.sh

Restart=on-failure

RestartSec=3



Крок 3. Перечитати конфігурацію та запустити сервіс.

Команди: sudo systemctl daemon-reload; sudo systemctl start lab92.service



Крок 4. Перевірити статус сервісу.

Команда: systemctl status lab92.service

Пояснення: зверніть увагу на Exit code та останні спроби рестарту.



Крок 5. Переглянути лог сервісу.

Команда: journalctl -u lab92.service -n 20

Пояснення: знайдіть записи про ненульовий exit status.



Крок 6. Дочекатися кількох рестартів і ще раз перевірити статус.

Пояснення: подивіться поле Restart та лічильник спроб.



Крок 7. Змінити політику рестарту так щоб система не намагалась перезапускати сервіс безкінечно.

Пояснення: додайте параметри StartLimitInterval та StartLimitBurst або змініть Restart.



Крок 8. Перезапустити сервіс з новими налаштуваннями.

Команди: sudo systemctl daemon-reload; sudo systemctl restart lab92.service



Крок 9. Проаналізувати різницю у поведінці після зміни параметрів.

Пояснення: сервіс має відключатися після певної кількості невдалих спроб.



Крок 10. Міні звіт.

Завдання: опишіть алгоритм дій коли прод сервіс раптово починає падати і systemd його постійно перезапускає.