托管: VPS
虚拟私人服务器,大多数时候被称为 VPS,是在云中运行的虚拟机,用户拥有其系统的完整控制权。
在这个指南中,你将学习如何在 VPS 中运行你的机器人,保持它 24/7 在线,使其在 VPS 启动和崩溃时自动重启。
systemd
systemd 是一个强大的服务管理器,它预安装在大多数 Linux 发行版上,主要是基于 Debian 的发行版。
获取启动命令
- 获取你的运行时的完整路径:
# 如果使用 Deno
which deno
# 如果使用 Node.js
which node
你也应该有你的入口文件的完整路径。
你的启动命令应该像下面这样:
<完整的运行时路径> <选项> <完整的入口文件路径>
# Deno 样例:
# /home/user/.deno/bin/deno --allow-all /home/user/bot1/mod.ts
# Node.js 样例:
# /home/user/.nvm/versions/node/v16.9.1/bin/node /home/user/bot1/index.js
创建服务
- 进入服务目录
cd /etc/systemd/system
- 用编辑器打开你的新服务文件:
nano bot1.service
- 添加以下内容:
[Service]
ExecStart=<start_command>
Restart=on-failure
[Install]
WantedBy=multi-user.target
用上面得到的命令替换
<start
。_command>
- 每当你编辑服务时,都要重新加载 systemd:
systemctl daemon-reload
管理服务
启动
systemctl start <service_name>
用服务的文件名替换
<service
。 样例:_name> systemctl start bot1
开机时启动
systemctl enable <service_name>
检查日志
systemctl status <service_name>
重启
systemctl restart <service_name>
停止
systemctl stop <service_name>
不要在开机时运行
systemctl disable <service_name>
PM2(仅限 Node.js)
PM2是一个用于 Node.js 的守护进程管理器,它将帮助你管理并保持你的应用程序 24/7 在线。
安装
npm install pm2@latest -g
# 使用 Yarn
yarn global add pm2
管理应用
启动
pm2 start --name <app_name> <entry_point>
<app
可以是你的应用程序的任何标识符,例如:_name> bot1
。<entry
是你的索引文件的路径(即运行你的 bot 的文件)。_point>
重启
通过重启,你停止了应用程序,然后再次启动它。
pm2 restart <app_name>
重载
通过重载,用一个新的进程替换你的应用程序的当前进程,导致 0 秒的停机时间。这建议用于无状态应用程序。
pm2 reload <app_name>
停止
# 一个应用程序
pm2 stop <app_name>
# 所有应用程序
pm2 stop all
删除
通过删除,将会停止你的应用程序,并且删除它的日志和指标。
pm2 del <app_name>
高级用法
更多信息,请参考 https://