>_ IzzyLab

Практическое задание

Перехвати сигнал через trap

средне

Напиши скрипт /root/graceful.sh, который работает в бесконечном цикле, но перехватывает сигнал TERM и перед выходом создаёт файл-маркер /tmp/cleanup.done. То есть при получении SIGTERM скрипт должен корректно завершиться, оставив этот файл.

Что потренируешь:
  • trap
  • сигналы
  • sigterm
  • bash-скрипты
  • graceful shutdown

Разбор темы

Сигналы — способ ОС попросить процесс что-то сделать; SIGTERM — вежливая просьба завершиться, которую программа может перехватить, чтобы прибраться перед выходом (закрыть файлы, сбросить буферы) — это и есть graceful shutdown. В bash перехват вешается встроенной командой trap: ей задают код-обработчик и имя сигнала. Чтобы скрипт дожил до сигнала, после установки обработчика его оставляют в бесконечном ожидании.

Что проверяется

  1. скрипт создан
  2. trap ловит TERM и делает cleanup

Как это выглядит