Debian 9 - rc.local устарел, как запускать python при запуске

Я немного потерялся, у меня есть сервер Debian 9 и Python ] Скрипт Flask , который я пытаюсь запустить при запуске.

Раньше я использовал rc.local для запуска при запуске, но, судя по чтению, он устарел.

Кто-нибудь может сказать мне, что это за замена, какой метод мне лучше всего использовать сейчас?

1
задан 29 January 2019 в 12:24
3 ответа

Debian 9 (как и многие другие текущие дистрибутивы Linux) использует systemd для запуска и управления вашей системой и службами.

Вы столкнетесь с некоторой кривой обучения по сравнению с добавлением строк в rc.local , но записью файлов модулей (жаргон systemd для того, что фактически эквивалентно началу и остановите скрипт для службы) будет полезно изучить.

Специальная документация Debian по systemd находится на https://wiki.debian.org/systemd
На странице https://wiki.debian.org/systemd/Services содержит подробные пошаговые инструкции по созданию собственного (минимального) файла модуля:

  • Создайте файл модуля «myservice.service» в каталоге / etc / systemd / system /

      # /etc/systemd/system/myservice.service
     [Единица измерения]
    Описание = Моя служба
    После = network.target
    
     [Обслуживание]
    Тип = простой
    Перезагрузка = всегда
    ExecStart = / usr / local / bin / myservice
    
     [Установить]
    WantedBy = multi-user.target
     
  • Перезагрузите systemd, чтобы получить измененные / новые файлы модулей: systemctl daemon-reload

  • Включить и запустить новую службу

     systemctl enable myservice.service
    systemctl запустить myservice.service
     
4
ответ дан 3 December 2019 в 17:02

Однозначного ответа нет, но вы можете использовать что-то вроде Supervisord :

Supervisor - это система клиент / сервер, которая позволяет пользователям контролировать и управлять рядом процессов в UNIX-подобных операционных системах.

-1
ответ дан 3 December 2019 в 17:02

Вы запускаете его с помощью модуля systemd, как и любую другую службу.

В Интернете есть множество руководств о том, как это настроить. Или вы можете просто начать с каркаса, например:

[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
2
ответ дан 3 December 2019 в 17:02

Теги

Похожие вопросы