Discord.py机器人MacOS本地运行会话易失效,如何实现24/7稳定在线?
解决Discord.py机器人会话失效及24/7在线问题
问题根源
你的Mac在AFK状态下会自动进入休眠模式,导致网络连接中断,Discord网关检测到长时间无通信后会失效当前会话;唤醒电脑后网络恢复,机器人会重新发起连接。本地运行机器人本质上无法实现24/7在线,因为电脑不可能一直保持唤醒、联网状态。
永久解决方案:部署到远程服务器
这是唯一能让机器人持续在线的方案,步骤如下:
- 选择云服务器:比如AWS免费套餐、阿里云学生机、DigitalOcean等,最低配实例足以运行小型Discord机器人。
- 选择服务器系统:优先选Ubuntu或Debian,操作简单且稳定性高。
- 上传机器人代码:用
scp命令直接传输,或者通过Git仓库同步代码到服务器。 - 安装依赖环境:
sudo apt update sudo apt install python3 python3-pip pip3 install discord.py - 用进程管理器后台运行机器人:
推荐使用systemd(比screen更稳定,支持开机自启):- 创建服务配置文件:
sudo nano /etc/systemd/system/discord-bot.service - 写入以下内容(替换
your_username和/path/to/your/bot/folder为实际信息):[Unit] Description=Discord Bot Service After=network.target [Service] User=your_username WorkingDirectory=/path/to/your/bot/folder ExecStart=/usr/bin/python3 bot.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target - 启动并设置开机自启:
sudo systemctl daemon-reload sudo systemctl start discord-bot.service sudo systemctl enable discord-bot.service
- 创建服务配置文件:
本地临时缓解(仅用于测试,无法实现24/7)
如果只是临时测试不想部署服务器,可以关闭Mac休眠:
- 打开「系统设置」→「显示器」,取消勾选「自动关闭显示器」(注意会增加耗电)。
- 在终端执行命令强制保持唤醒:
该命令会让Mac保持唤醒状态,直到你按caffeinate -iCtrl+C终止,但电脑不能关机、断网,仅适合短时间测试。
内容的提问来源于stack exchange,提问作者kno
相关产品推荐
相关产品推荐

