Основы командной строки Linux и запуск сервисов

Фоновые процессы и автозапуск: systemd unit и journalctl

Содержание курса

2. Создание и настройка сервиса для приложения

Перед тем как доверить запуск сервису, нужно убедиться, что порт 8000 свободен. Если тестовое приложение всё ещё запущено вручную в консоли, остановите его сочетанием клавиш Ctrl+C в соответствующем окне терминала.

Каталог /etc/systemd/system/ принадлежит суперпользователю. Создайте в нём файл службы с помощью редактора nano:

sudo nano /etc/systemd/system/devops-demo.service

Система запросит пароль учётной записи student. При вводе символы на экране не отображаются — это стандартное поведение Linux. Введите пароль и нажмите Enter.

В открывшемся окне редактора вставьте следующую конфигурацию:

[Unit]
Description=DevOps Demo Service

[Service]
User=student
WorkingDirectory=/home/student/devops-demo
ExecStart=/home/student/devops-demo/.venv/bin/python /home/student/devops-demo/app.py --host 127.0.0.1 --port 8000
Restart=on-failure

[Install]
WantedBy=multi-user.target

Обратите внимание на аргумент --host 127.0.0.1. Мы намеренно привязываем сервер к локальному интерфейсу обратной петли (loopback) виртуальной машины. В такой конфигурации служебный порт не торчит наружу, а само приложение доступно только процессам внутри этой же операционной системы. Сохраните файл (Ctrl+O, затем Enter) и закройте редактор (Ctrl+X).

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.