Как запустить python скрипт в фоновом режиме?

Всем привет

Я тут работаю над одним проектом(личный бот по факту) и возникла задача запустить его в фоне. То есть процесс будет висеть , но консоль(командная строка) будет закрыта(не свернута). Запуск скрипта с добавлением в конец & - не дает нужного результата. Думаю что нужно добавить пару строчек кода в сам скрипт.
Подскажите кто знает
  • Вопрос задан
  • 37588 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Teslaman
Можно написать демон для systemd если в вашей операционной системе он используется.

Создаём файл демона:
sudo touch /etc/systemd/system/bot.service

Вставляем туда следующее:
[Unit]
Description=My bot
After=multi-user.target
 
[Service]
Type=idle
ExecStart=/usr/bin/python /путь/до/скрипта/bot.py
Restart=always
 
[Install]
WantedBy=multi-user.target


После этого в консоли выполяем:
sudo systemctl daemon-reload
sudo systemctl enable bot.service
sudo systemctl start bot.service


Чтобы остановить бот:
sudo systemctl stop bot.service
Чтобы удалить из автозагрузки:
sudo systemctl disable bot.service
Чтобы проверить работу демона:
sudo systemctl status bot.service
Ответ написан
vla3d
@vla3d
Скрипт без окна консоли запускается через Pythonw.exe вместо Python.exe
Pythonw ассоциируется с расширением .pyw
Скрипт работает в фоне
5ff4ca128b1f9574985264.jpeg
Ответ написан
trak
@trak
Все давно придумано
Ответ написан
Комментировать
@Nekrasovp
По аналогии со screen есть отличный вариант в виде tmux
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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