
Cloud & DevOps: от локального приложения до надёжного сервиса Урок 4 из 24
Процессы, сигналы, службы и журналы
Наблюдаем PID, корректную остановку и структурированный журнал, а затем читаем unit-файл systemd как контракт запуска.
Текст переведён с помощью ИИ.
Этот урок начинается с нуля. Незнакомое слово здесь не считается вашим пробелом: мы сначала создадим образ, затем дадим точное значение и только потом применим его.
Где мы находимся
Полётное повторение. В прошлом уроке была опора 👤 владелец | 👥 группа | 🌍 остальные × читать/писать/выполнять. Не подглядывая, назовите её четыре звена и только затем сравните с записью.
Результат урока
Наблюдаем PID, корректную остановку и структурированный журнал, а затем читаем unit-файл systemd как контракт запуска. Не переходите дальше, пока не можете объяснить, что проверяет каждая команда и какой отказ она обнаруживает.
Сначала знакомый образ
Нотный текст ещё не музыка: музыка появляется, когда исполнитель начинает играть. Так же файл программы превращается в процесс после запуска. PID — номер исполнителя на сцене, сигнал — просьба дирижёра, а журнал — запись того, что происходило.
Аналогия помогает начать рассуждение, но не заменяет устройство технологии. Ниже мы уточним каждое слово.
Опорный сигнал урока
программа + запуск = процесс(PID); TERM → завершиться; журнал → что было
Прочитайте цепочку слева направо. Она отвечает не на вопрос «какую команду запомнить», а на вопрос «почему следующий шаг следует из предыдущего».
Новые слова простыми словами
- Процесс — Запущенный экземпляр программы с памятью и состоянием.
- PID — Числовой идентификатор конкретного процесса.
- SIGTERM — Вежливая просьба процессу завершиться и убрать за собой.
- Лог — Запись событий с временем и контекстом для диагностики.
Разбираем без спешки
Процесс имеет жизненный цикл. SIGTERM просит завершиться и даёт сохранить состояние; SIGKILL немедленно отбирает такую возможность. Менеджер служб добавляет пользователя, окружение, перезапуск и журнал, но не исправляет приложение, которое игнорирует завершение.
Сейчас не нужно запоминать формулировку дословно. Найдите в ней причинную связь и привяжите её к опорному сигналу выше.
Сначала предскажите результат
До запуска ответьте на бумаге: что должно измениться, что должно остаться прежним и какой вывод команды подтвердит ваш прогноз? Даже неверный прогноз полезен, если после опыта вы можете объяснить расхождение.
Опыт маленькими шагами
Выполните команды из корня course/cloud-devops-lab. Команды рассчитаны на учебную среду. Перед командой, меняющей сервер или данные, прочитайте её целиком и проверьте текущий каталог. Запускайте блок по одной смысловой группе. После каждой остановитесь и сопоставьте результат со своим прогнозом.
CLOUDLAB_ADDR=:8080 go run ./cmd/cloudlab > /tmp/cloudlab.log 2>&1 &
pid=$!
sleep 1
ps -p "$pid" -o pid=,ppid=,command=
kill -TERM "$pid"
wait "$pid"
tail -n 5 /tmp/cloudlab.log
Что именно делает этот опыт
Сервис запускается в фоне, а его PID сохраняется. ps доказывает существование именно этого процесса. kill -TERM посылает просьбу завершиться, wait ждёт результата, tail показывает последние события журнала.
Что должно получиться
- PID существует до SIGTERM.
waitзавершается без принудительного убийства.- Журнал содержит поля времени, уровня и сообщения.
Соберите целое по опорной схеме
Проведите пальцем или карандашом по четырём блокам и расскажите весь урок одним связным объяснением.
Воспроизведите без подсказки
- Закройте схему и нарисуйте четыре блока по памяти.
- Объясните каждый переход словами «потому что».
- Дайте определение одному новому термину, не повторяя текст дословно.
- Назовите один сигнал, который доказывает результат.
Найдите и исправьте ошибку
Ошибка: «SIGKILL — более надёжный способ обычной остановки». Исправление: он не оставляет приложению времени сохранить данные и закрыть работу; это аварийная мера.
Задание
Теперь соберите тот же смысл самостоятельно. Можно смотреть на опорную схему; цель — не экзамен на память, а воспроизводимый результат.
Обязательное. Напишите POSIX sh-скрипт, который запускает фоновый процесс, сохраняет PID, устанавливает trap для SIGTERM и дожидается чистого завершения. Отправьте только команды или скрипт POSIX sh без реальных ключей и токенов.
Критерии готовности
- Вы понимаете каждую запускаемую строку.
- Повторный запуск даёт ожидаемый результат или безопасно объяснённое отличие.
- В выводе нет настоящих ключей, токенов и паролей.
- Вы можете показать факт, который подтверждает успех.
Если проверка не прошла, зафиксируйте ожидаемое и фактическое, вернитесь к одному разорванному звену опоры и повторите. Ошибка не отнимает у вас право продолжать обучение.
По желанию. Запишите один возможный отказ и сигнал, по которому вы его заметите.
Открытая перспектива
Следующий урок добавит новую опору: Сеть без магии: IP, порт, DNS, HTTP и TLS.
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.