Debian 9 - rc.local устарел, как запускать python при запуске
Я немного растерялся, у меня есть Debian
9 сервер и Python
Flask
скрипт, который я пытаюсь запустить при запуске.
В прошлом я использовал rc.local
запускать вещи при запуске, но после чтения кажется, что это устарело.
Может кто-нибудь сказать мне, что его замена, какой метод я лучше всего использую сейчас?
3 ответа
Debian 9 (как и многие другие современные дистрибутивы Linux) использует systemd для запуска и управления вашей системой и службами.
Вы столкнетесь с небольшой кривой обучения по сравнению с добавлением строк в rc.local
но написание файлов модулей (systemd jargon для того, что фактически эквивалентно сценарию запуска и остановки для службы) будет полезным навыком для изучения.
Специальная документация Debian по systemd находится по https://wiki.debian.org/systemd.
Страница https://wiki.debian.org/systemd/Services содержит подробные пошаговые инструкции для того, что необходимо для написания собственного (минимального) файла модуля:
Создайте файл модуля "myservice.service" в каталоге
/etc/systemd/system/
# /etc/systemd/system/myservice.service [Unit] Description=My Service After=network.target [Service] Type=simple Restart=always ExecStart=/usr/local/bin/myservice [Install] WantedBy=multi-user.target
Перезагрузите systemd, чтобы забрать ваши измененные / новые файлы юнитов:
systemctl daemon-reload
Включить и запустить новый сервис
systemctl enable myservice.service systemctl start myservice.service
Вы запускаете его, используя системный модуль, как и любой другой сервис.
В Интернете есть множество учебных пособий о том, как это настроить. Или вы можете просто начать со скелета, например:
[Unit]
Description=uWSGI instance to serve my project
After=network.target
[Service]
User=you
Group=www-data
WorkingDirectory=/home/you/project
Environment="PATH=/home/you/project/venv/bin"
ExecStart=/home/you/project/venv/bin/uwsgi --ini uwsgi.ini
[Install]
WantedBy=multi-user.target
Единого ответа нет, но вы можете использовать что-то вроде http://supervisord.org/:
Supervisor - это система клиент-сервер, которая позволяет пользователям отслеживать и контролировать ряд процессов в UNIX-подобных операционных системах.