← До списку лабораторних по Linux
Повний опис / сценарій лабораторної:
Мета: відпрацювати техніку пошуку причин падіння 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 його постійно перезапускає.