Демонизация python бота в systemd в его venv
всем хорошего дня, прошу помочь в следующем
Имеется debian
Имеются дериктории
С venv /home/vladsu/.virtualenvs/vlad/bin/activate
C ботом /home/vladsu/SM_8ject/SM-8/SM_8.py
Файл службы в /etc/systemd/system
[Unit]
Description=SM_803
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/home/vladsu/SM_8ject/SM-8
ExecStart=/home/vladsu/.virtualenvs/vlad/bin/python3 /home/vladsu/SM_8ject/SM-8/SM_8.py
Restart=always
RestartSec=240
[Install]
WantedBy=multi-user.target
Но почему-то бот не видит зависимостей в своей директории И как указать файл для логов?
Ответы (1 шт):
Автор решения: Namerek
→ Ссылка
Рабочий пример
[Unit]
Description=Otomoto.pl ad publicher and remover
StartLimitIntervalSec=1h
StartLimitBurst=60
[email protected]
[email protected]
OnFailure=fail@%i.service
StartLimitIntervalSec=10 min
StartLimitBurst=10
[Service]
Type=simple
User=developer
Group=developer
# === На самом деле, ответ на Ваш вопрос здесь ===
Environment=VIRTUAL_ENV=/srv/smai/venv
Environment=PYTHONPATH=/srv/smai
ExecStart=/srv/smai/venv/bin/python /srv/smai/portals/publishing/tasks/%i/run.py
# ==============================
ExecStop=/srv/smai/venv/bin/python /srv/smai/extras/services/exec_stop.py %i
WatchdogSec=3600
Restart=on-failure
RestartSec=10
LogLevelMax=err
SyslogLevel=err
[Install]
WantedBy=default.target
Полагаю Ваш файл должен выглядеть так
[Unit]
Description=SM_803
After=network.target
[Service]
# Запуск от root производится по умолчанию
# User=root
# Group=root
Environment=VIRTUAL_ENV=/home/vladsu/.virtualenvs/vlad
Environment=PYTHONPATH=/home/vladsu/SM_8ject/SM-8
# WorkingDirectory=/home/vladsu/SM_8ject/SM-8
ExecStart=/home/vladsu/.virtualenvs/vlad/bin/python3 /home/vladsu/SM_8ject/SM-8/SM_8.py
Restart=always
RestartSec=240
[Install]
WantedBy=multi-user.target