Вопрос проверяет, умеете ли вы настраивать автозапуск сервиса, управление процессами и мониторинг в Linux.
Systemd позволяет запускать backend-приложение как сервис, который автоматически стартует при загрузке системы и перезапускается при сбоях. Для этого создается unit-файл, где указываются команда запуска, рабочая директория и политика перезапуска. После этого сервис включается и запускается через systemctl. Это стандартный способ управления backend-процессами в Linux.
Systemd — основной менеджер сервисов в современных Linux-системах.
Определение: Unit-файл — конфигурационный файл, описывающий, как запускать и управлять сервисом.
Пример:
[Unit]
Description=Gunicorn Django Service
After=network.target
[Service]
User=www-data
WorkingDirectory=/var/www/project
ExecStart=/var/www/project/venv/bin/gunicorn project.wsgi:application
Restart=always
[Install]
WantedBy=multi-user.target
Часто используются:
ExecStart — команда запуска
WorkingDirectory — рабочая папка
User — пользователь
Restart=always — автоперезапуск
После создания файла:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
Полезные команды:
systemctl status myapp
journalctl -u myapp
Systemd дает:
Автозапуск
Перезапуск при падении
Логи
Контроль зависимостей
Systemd — стандартный механизм управления backend-процессами в Linux, позволяющий надежно запускать Gunicorn или другие сервисы и автоматически восстанавливать их после сбоев.