Для автоматического запуска Python программы, использующей виртуальное окружение, в фоновом режиме на Linux вы можете использовать systemd.
1. Создайте файл с расширением ".service" в директории "/etc/systemd/system". Например, "my_script.service".
2. Откройте файл для редактирования и добавьте следующий код:
```
[Unit]
Description=My Python Script
After=network.target
[Service]
ExecStart=/путь_к_вашему_виртуальному_окружению/bin/python /путь_к_вашему_скрипту.py
WorkingDirectory=/путь_к_вашему_рабочему_каталогу
User=ваш_пользователь
Group=ваша_группа
Restart=always
[Install]
WantedBy=multi-user.target
```
Замените "/путь_к_вашему_виртуальному_окружению" на путь к вашему виртуальному окружению, "/путь_к_вашему_скрипту.py" на путь к вашему скрипту Python, "/путь_к_вашему_рабочему_каталогу" на путь к вашему рабочему каталогу, "ваш_пользователь" на вашего пользователя и "ваша_группа" на вашу группу.
3. Сохраните и закройте файл.
4. Запустите следующую команду, чтобы systemd обнаружил изменения и добавил наш сервис в список доступных сервисов:
```
sudo systemctl daemon-reload
```
5. Затем выполните следующую команду, чтобы включить автозапуск сервиса:
```
sudo systemctl enable my_script.service
```
6. Теперь вы можете запустить сервис следующей командой:
```
sudo systemctl start my_script.service
```
Ваш скрипт на Python начнет работать в фоновом режиме.
Замечание: убедитесь, что исполняемый файл виртуального окружения находится по пути "/путь_к_вашему_виртуальному_окружению/bin/python". Если путь отличается, измените его в настройках сервиса.