我用Python写的Telegram Bot,如何部署到服务器上7x24小时运行?
5 个回答
部署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端口备用。
写好异常捕获是最重要的,否则照样掉线。
1. 选个云主机(如腾讯云/阿里云),开个Ubuntu
2. 用scp或者ftp上传代码,装好python3和相应的依赖库
3. 用`nohup python bot.py &`命令启动,关上ssh也不会停止
4. 可以再套一层screen/tmux,随时查看日志
5. 服务器放在公网就完事了,记得开防火墙端口
6. 想高级一点的话可以使用systemd写服务,自动重启更加稳定
用pm2这种进程管理器也是可以的,只要别让进程挂了就行
1. 选择一个靠谱的云服务器(DigitalOcean/阿里云),部署Python
2. `nohup python bot.py > log.txt 2>&1 &`后台跑程序
3. 安装supervisor监控进程,程序宕机自动重启
4. 配置定时任务每天凌晨拉取最新代码更新
5. 开放服务器80/443端口,放行Telegram的IP地址,别被防火墙阻挡。
要让机器人7x24小时在线,核心就一个:别在本地跑,一定要上服务器。
第一步,买个VPS,推荐DigitalOcean或者Vultr,便宜又好用,国内访问速度也不差。
第二步,用ssh连上去,装个python环境,把代码传上去,然后用screen或者tmux开个会话跑bot,这样关闭ssh也不会中断。
第三步,为了更稳定,用systemd写个服务,开机自启,断了自动拉起,比手动管强太多了。
第四步,加个反向代理(比如nginx),让telegram能正常访问你的webhook,避免IP被封。
最后提醒一句,别用python bot.py这种傻办法,真的会掉线,血泪教训。
搞定,就这么简单。
先把代码上传到云服务器,像阿里云、腾讯云这些都可以。然后安装好Python环境。
用screen或者nohup命令运行你的Bot程序,这样关掉SSH连接也不会中断。
再配合一个进程管理工具,比如supervisord,方便重启和监控程序状态。
最后配置好防火墙,开放相应端口,设置自动重启脚本就大功告成了。