Фоновые процессы и автозапуск: 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).
