Я хочу развернуть приложение Python в Red Hat Linux, которое считывает потоки Kafka и отправляет данные в некоторые последующие процессы.
Каков наилучший способ / методы развертывания / запуска моего приложения Python, чтобы оно все время работало в фоновом режиме и перезапускалось при запуске?
Цель состоит в том, чтобы продолжать читать потоки Kafka и непрерывно передавать данные.
Вы можете настроить uwsgi или gunicorn для работы в качестве службы, в сети должны быть примеры (я не добавляю их, поскольку они могут быстро устареть). Если у вас есть systemd на сервере, он мигрирует
Вы должны создать .service
файл для вашего приложения в /etc/systemd/system
или в /usr/lib/systemd/system
и включите его. Что-то вроде этого:
[Unit]
Description=My script
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=5
WorkingDirectory=/tmp
StartLimitInterval=0
StartLimitBurst=999999
User=myuser
Group=myuser
ExecStart=/path/to/my/executable/script
[Install]
WantedBy=multi-user.target
Например, это было бы yourservice.service
файл. Затем выполните systemctl daemon-reload
, systemctl enable yourservice.service
и systemctl start yourservice.service
. Этот способ подходит, когда вы не используете virtualenv
.