@pinguine

Как правильно запускать telegram бота на ssh сервере?

Я написал telegram бота на python и загрузил его на VPS. К VPS я подключаюсь так – ssh login@ip. Я запускаю свой скрипт python3 main.py и он работает. Но как только я закрываю терминал с ssh соединением скрипт перестает работать. Как сделать так чтобы скрипт работал постоянно, без остановки, вне зависимости от того, подключен я к серверу или нет? Какое решение подойдет чтобы я мог запустить сразу несколько скриптов на сервере?
Сервер на ubuntu.
  • Вопрос задан
  • 2922 просмотра
Пригласить эксперта
Ответы на вопрос 4
selivanov_pavel
@selivanov_pavel
Linux admin
Напишите службу для запуска бота:

cat > /etc/systemd/system/foobar.service << EOF

[Service]
WorkingDirectory=/home/user/foobar
User=user
ExecStart=/usr/bin/python3 main.py

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable foobar
systemctl start foobar
systemctl status foobar
Ответ написан
Комментировать
alsolovyev
@alsolovyev
Вы когда терминал закрываете у себя на компьютере, то процесс, который был запущен в нем, завершается.
Следовательно, Вам надо запустить bot в фоне. Способов куча... пусть будет screen
sudo apt install screen
screen -S mybot
python3 bot.py
Комбинация клавиш CTRL A затем D
Можно закрывать терминал

screen -r mybot - чтобы открыть при следующем входе
Ответ написан
Комментировать
fzfx
@fzfx
18,5 дм
попробуйте python3 main.py &.
Ответ написан
@LiguidCool
screen!
Но вообще запускайте демона!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы