如何让Google Cloud Platform上的Minecraft服务器持续运行?
让GCP VM上的Minecraft服务器持续后台运行的方法
你之前用screen -S run.sh没效果是因为命令使用方式不对,下面给你三种可行的解决方案:
方案一:正确使用screen会话
screen的核心是先创建会话,再在会话内部启动服务器,操作流程如下:
- 输入
screen -S mc-server创建并进入名为mc-server的会话 - 在会话内运行启动脚本:
./run.sh - 服务器启动后,按
Ctrl+A+D组合键分离会话(此时会话会在后台保持运行状态) - 后续需要重新管理服务器时,输入
screen -r mc-server重新连接会话;如果存在多个screen会话,先用screen -ls查看会话列表,再指定会话连接
方案二:用nohup后台运行
如果不想使用screen会话管理,直接用nohup让程序脱离终端运行:
- 执行命令:
nohup ./run.sh &nohup会让程序忽略终端关闭时的挂起信号,&用于将程序放到后台运行- 默认输出会写入当前目录的
nohup.out文件,也可以自定义日志路径:nohup ./run.sh > mc-server.log 2>&1 &,这样日志会保存到mc-server.log文件中,方便后续查看
方案三:用systemd服务管理(推荐长期运行场景)
将Minecraft服务器配置为systemd服务,不仅能实现后台持续运行,还支持开机自启、崩溃自动重启:
- 创建服务文件:
sudo nano /etc/systemd/system/mc-server.service,粘贴以下内容(替换占位符为你的实际信息):
[Unit] Description=Minecraft Server After=network.target [Service] User=你的用户名 # 比如ubuntu,填写运行MC服务器的系统用户 WorkingDirectory=/path/to/your/mc-server # 替换为你的MC服务器脚本所在目录 ExecStart=/bin/bash ./run.sh Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
- 保存退出后,重新加载systemd配置:
sudo systemctl daemon-reload - 启动服务器服务:
sudo systemctl start mc-server - 设置开机自启:
sudo systemctl enable mc-server - 查看服务状态:
sudo systemctl status mc-server,实时查看日志用journalctl -u mc-server -f
内容的提问来源于stack exchange,提问作者Diego Mellado
相关产品推荐
相关产品推荐

