🐧 在 Linux 上部署
📦 环境配置
- Arch Linux
- Ubuntu
- Fedora / CentOS
🛍️ 安装一个 AUR 工具 (如果没有)
sudo pacman -S git base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
🗃️ MongoDB 数据库
paru -S mongodb-bin
sudo systemctl enable --now mongodb
如果 systemctl status mongodb
的状态为 "active" 则表示安装成功
☕ OpenJDK 17
sudo pacman -S jdk17-openjdk
sudo archlinux-java set java-17-openjdk
如果 java -version
有输出类似 openjdk version "17.0.3" 2022-04-19
的内容则表示安装成功
⛓️ mitmproxy 代理
sudo pacman -S mitmproxy python
🗃️ MongoDB 数据库
导入密钥
sudo apt install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
- Ubuntu 20.04 (Focal)
- Ubuntu 18.04 (Bionic)
- Ubuntu 16.04 (Xenial)
添加 MongoDB 软件源
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
添加 MongoDB 软件源
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
添加 MongoDB 软件源
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
安装 MongoDB
sudo apt update
sudo apt install mongodb-org
sudo systemctl enable --now mongod
☕ OpenJDK 17
sudo apt install openjdk-17-jdk openjdk-17-jre
如果 java -version
有输出类似 openjdk version "17.0.3" 2022-04-19
的内容则表示安装成功
⛓️ mitmproxy 代理
sudo apt install mitmproxy
警告
Fedora 全系 (包括 CentOS) 在本文中均无法得到任何支持
🚜 运行服务器
🎚️ 测试
cd /path/to/grasscutter # 进入 Grasscutter 目录
mitmdump -s proxy.py -k --set block_global=false & # 运行 mitmdump 代理
sudo java -jar grasscutter.jar # 运行服务器主文件
✒️ 编写脚本
如果测试起来没问题的话可以制作一个 Shell 脚本方便下次运行,内容如下
#!/bin/bash
cd /path/to/grasscutter
mitmdump -s proxy.py -k --set block_global=false &
sudo java -jar grasscutter.jar
🎞️ 保持后台
推荐使用 screen
实现保持后台
📥 安装
- Arch Linux
- Ubuntu & Debian
sudo pacman -S screen
sudo apt install screen
🛠️ 使用
简单介绍一下 screen 的使用方法
创建会话
screen -S name
此时便进入了一个新的会话,与普通的终端无异,在运行需要保持的命令后,可使用 Ctrl
+ A
, D
离开当前会话
查看现有会话
screen -ls
该命令会列出现有的所有会话
回到会话
screen -r name
此时便回到了之前创建的会话,可继续对其中运行的程序进行操作
使用 screen 创建的会话在 ssh 断连时也会保持运行
可选步骤:使用 systemd 使其开机自启
创建进程守护文件
cat << 'TEXT' > /etc/systemd/system/grasscutter.service
[Unit]
Description=Grasscutter Daemon
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
WorkingDirectory=/path/to/grasscutter # 替换 /path/to/grasscutter 为正确路径
ExecStart=/usr/bin/screen -dm -S grasscutter bash -c 'cd /path/to/grasscutter;java -jar ./grasscutter.jar;exec bash' # 替换 /path/to/grasscutter 为正确路径
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
TEXT
设置开机自启
sudo systemctl enable --now grasscutter.service
注意使用root
用户管理screen进程。