You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu虚拟机中Minecraft服务器重启后无法找到控制台求助

解决Minecraft服务器脱离Screen会话但仍运行的问题

1. 定位服务器进程

先找到仍在运行的Minecraft服务器进程ID(PID):

  • 执行ps aux | grep java,在输出里筛选出对应Minecraft服务器的进程(排除带grep java的行)
  • 或者用更精准的命令:pgrep -f "server.jar"(如果你的服务器启动jar是server.jar)

2. 重新接管控制台

用reptyr工具将后台进程绑定到当前终端:

  1. 安装工具:sudo apt update && sudo apt install reptyr
  2. 绑定进程:sudo reptyr <你的PID>
    执行后,当前终端会成为Minecraft服务器的控制台,可正常输入命令。如果需要放回screen会话,先新建screen(screen -S mc-server),再执行上述reptyr命令,之后按Ctrl+A D即可分离会话。

3. 问题原因

Minecraft服务器内部的restart命令会终止当前Java进程并重新启动,但重启后的进程会脱离原screen会话控制,变成后台孤儿进程——因此找不到对应screen会话,但进程本身仍在运行。

4. 避免后续出现该问题

  • 弃用内部restart命令:改用手动流程:在控制台输入stop关闭服务器,确认进程终止后,在screen会话里重新启动服务器。
  • 改用systemd管理服务(更稳定):
    创建systemd服务文件/etc/systemd/system/minecraft.service,内容如下(替换成你的实际配置):
    [Unit]
    Description=Minecraft Server
    After=network.target
    
    [Service]
    User=ubuntu
    WorkingDirectory=/home/ubuntu/minecraft-server
    ExecStart=/usr/bin/java -Xmx8G -Xms4G -jar server.jar nogui
    Restart=always
    RestartSec=3
    
    [Install]
    WantedBy=multi-user.target
    
    然后执行:
    • sudo systemctl daemon-reload
    • sudo systemctl enable minecraft
    • sudo systemctl start minecraft
      后续管理命令:
    • 查看控制台日志:journalctl -u minecraft -f
    • 重启服务器:sudo systemctl restart minecraft
    • 停止服务器:sudo systemctl stop minecraft

内容的提问来源于stack exchange,提问作者thesnipe12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:25:19