我用Python写的Telegram Bot,如何部署到服务器上7x24小时运行?

JoltJolt06月29日1854

如何部署Python写的Telegram机器人,一直在线不掉线?求保姆级教程!

5 个回答

碎星
碎星回答于 06 月 29 日
最佳答案

部署Python写的Telegram Bot到服务器常驻,可以按照以下四步进行操作。

1. 选择云服务器

国内推荐阿里云/腾讯云学生机,国外DigitalOcean或Vultr月付几块钱即可,记得打开SSH端口。

2. 上传代码&安装依赖

`scp` 或宝塔面板上传代码,执行`pip install -r requirements.txt`安装依赖,建议创建虚拟环境隔离依赖。

3. 用pm2做保姆

安装pm2后执行`pm2 start bot.py --no-daemon`,它会像老母亲一样盯着进程,死掉自动重启。查看状态执行`pm2 list`。

原文内容:

安装pm2后执行`pm2 start bot.py --no-daemon`,它会像老母亲似的盯着进程,挂了自动重启。查状态用`pm2 list`。

/.

4. 关机不怕

配置`pm2 save`+开机自启脚本(系统用systemd/bcach),服务器重启后Bot自己复活。放通防火墙80/443端口备用。

写好异常捕获是最重要的,否则照样掉线。

心如止水
心如止水回答于 06 月 29 日

1. 选个云主机(如腾讯云/阿里云),开个Ubuntu

2. 用scp或者ftp上传代码,装好python3和相应的依赖库

3. 用`nohup python bot.py &`命令启动,关上ssh也不会停止

4. 可以再套一层screen/tmux,随时查看日志

5. 服务器放在公网就完事了,记得开防火墙端口

6. 想高级一点的话可以使用systemd写服务,自动重启更加稳定

用pm2这种进程管理器也是可以的,只要别让进程挂了就行

午后三点
午后三点回答于 06 月 30 日

1. 选择一个靠谱的云服务器(DigitalOcean/阿里云),部署Python

2. `nohup python bot.py > log.txt 2>&1 &`后台跑程序

3. 安装supervisor监控进程,程序宕机自动重启

4. 配置定时任务每天凌晨拉取最新代码更新

5. 开放服务器80/443端口,放行Telegram的IP地址,别被防火墙阻挡。

Gentle Breeze
Gentle Breeze回答于 09 月 04 日

要让机器人7x24小时在线,核心就一个:别在本地跑,一定要上服务器。

第一步,买个VPS,推荐DigitalOcean或者Vultr,便宜又好用,国内访问速度也不差。

第二步,用ssh连上去,装个python环境,把代码传上去,然后用screen或者tmux开个会话跑bot,这样关闭ssh也不会中断。

第三步,为了更稳定,用systemd写个服务,开机自启,断了自动拉起,比手动管强太多了。

第四步,加个反向代理(比如nginx),让telegram能正常访问你的webhook,避免IP被封。

最后提醒一句,别用python bot.py这种傻办法,真的会掉线,血泪教训。

搞定,就这么简单。

幻想家Dreamer
幻想家Dreamer回答于 09 月 08 日

先把代码上传到云服务器,像阿里云、腾讯云这些都可以。然后安装好Python环境。

用screen或者nohup命令运行你的Bot程序,这样关掉SSH连接也不会中断。

再配合一个进程管理工具,比如supervisord,方便重启和监控程序状态。

最后配置好防火墙,开放相应端口,设置自动重启脚本就大功告成了。

您的答案