最近更新于 2023-05-10 20:34
前言
之前在本地我用树莓派搭建了一个 ChatGPT/Claude/Bard/Bing 综合的 QQ 机器人(项目地址:https://github.com/lss233/chatgpt-mirai-qq-bot ),这些 AI 在国内都是不能直连的,需要借助代理。本地我也运行了差不多一个月左右了,最开始用校园网宽带延时很高,后面又换成数据流量,代理服务的延时相对要好些了,但是因为代理的因素还是不够稳定。所以我打算租个海外服务器,在上面搭建就不需要代理了,延时应该也低。
今天下午在阿里云租了个新加坡的最便宜的轻量服务器机型,2核1GB内存40GB硬盘 24¥/月,用的 Ubuntu 20.04 的系统,最开始我还给装了桌面,机器人也能顺利运行起来,但是一旦机器人交互使用起来内存上去就 killed,内存不够啊。但是如果不用桌面虽然内存就下去了,但是下次 ssh 连接上去想要看运行情况的时候就不是很方便了,不像桌面运行的东西只要连上去就能看到。
终端程序是可以使用 nohup 命令 & 后台运行的,但是断开ssh(关闭终端)后下次重连就不好回恢复运行状态了。所以我找了一个叫 tmux 软件感觉还可以,创建一个会话,在这个会话里面运行程序,退出会话,再断开 ssh,重新连上再进会话会恢复终端运行状态。这个 QQ 机器人是由两部分组成,一个是 QQ 机器人框架,用于登陆 QQ 后接收和发送消息,另外一部分是 AI 消息处理程序,接受来自 QQ 机器人的消息,发送给 AI 引擎,然后接收回复内容发送给 QQ 机器人,两部分要同时运行的。使用 tmux 来后台运行就很方便切回运行状态,桌面就可以卸载掉了,把使用内存降下去。
环境
Ubuntu 20.04 x64
使用
首先需要自己安装这个软件
sudo apt update
sudo apt install -y tmux
比如我先运行 QQ 机器人
# 创建一个会话取名为 qq
tmux new -s qq
# 然后 cd 切换到 QQ 机器人配置路径,运行就行
# 先按 Ctrl+B,再按 D 退出当前会话
然后再运行 AI 消息处理程序
# 创建一个会话名为 chatgpt
tmux new -s chatgpt
# 然后 cd 切换到 AI 消息处理程序所在路径,运行,同样的方法退出当前会话
已经处于运行中的会话,即使断开 ssh(关闭终端),会话在后台也是保持运行的
可以使用命令查看正在运行的会话
tmux list-sessions
使用命令可以进入正在运行的会话,比如我进入 AI 消息处理程序所在的会话
tmux attach -t chatgpt
要退出还是一样的按 Ctrl
+B
,然后D
要关闭运行中的会话的话可以使用下面命令。后面跟上会话的名字就行
tmux kill-session -t