当你有了自己的服务器时,想把bot部署在服务器上一劳永逸时,希望这篇文章可以帮助到你ヾ(•ω•`)o
你可以自己尝试部署到服务器,一般用Linux内核
1.在go-cq页面下好了适合linux的gocq压缩包,完成了nb create后。在服务器bot文件夹中,你会发现并没有.env文件,这就导致我们在配置环境变量时找不到方向,同时在与nonebot链接时也存在一定障碍。(原因是linux不会显示.env这类环境变量配置文件)
在拖文件时建议使用xftp
最简单的解决方法:
之前教程中在win创建的nb文件夹里有.env文件等等,你可以将其更改好后拖入bot.py所在目录里(不止.env哦)
2.在服务器连接扫码登录bot的qq时,你会遇见(显示不在安全的网络下)这一类情况
解决方法:
在win中的gocq文件里配置好的,如下
如此一来,在服务器登录后将自动登录,即可解决问题
3.针对linux内核不能持久使用的情况,我们使用screen
在服务器登录root用户,安装screen
sudo apt install screen
创建会话(aaa可以改为你想要的名字)
screen -S aaa
因为要gocq和nonebot都持久,因此要开两个窗口
所以在上面的条件下继续创建一个运行bot.py的窗口
screen -S bbb
在aaa窗口下cd进入gocq目录,继续输入
./go-cqhttp
在bbb窗口下cd进入bot.py目录,输入
poetry shell # 进入虚拟环境
python bot.py #或者nb run
你可以看见正常运行后,现在将终端连接关了,你会惊喜的发现bot能持久运行了!
恭喜你,成功了
在最后,关于screen确实得好好说说
1.恢复会话(如aaa)
screen -r aaa
2.列出已有会话
screen -ls
3.删除已有会话
screen -X -S xxx quit#xxx为你的会话序号
注意这里的会话序号是指会话名称前,如100525.bot,则xxx应为100525