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

如何向后台运行的Minecraft服务器注入命令?

解决Ubuntu上后台运行Minecraft服务器的命令注入问题

方法1:用Screen正确实现后台运行与控制台访问

你之前用Screen没奏效大概率是启动方式不对,正确流程:

  • 启动服务器并创建Screen会话:
    sudo screen -S mcserver java -Xmx10G -jar server.jar nogui
    
  • 需要后台运行时,按Ctrl+A再按D断开会话,服务器会继续在后台运行
  • 要重新访问控制台执行命令:
    sudo screen -r mcserver
    
  • 如果提示会话存在但无法直接连接,先列出所有会话:
    sudo screen -ls
    
    再用会话ID连接:sudo screen -r <会话ID>

方法2:用命名管道(FIFO)实现远程命令注入

如果已经用nohup启动了服务器,或者不想用终端复用工具,可以用管道实时注入命令:

  • 创建命名管道文件:
    sudo mkfifo mc_pipe
    
  • 重启服务器时将标准输入绑定到这个管道(替换原来的nohup命令):
    sudo nohup java -Xmx10G -jar server.jar nogui < mc_pipe >> minecraft_logs.txt &
    
  • 往管道写入命令即可注入到服务器控制台,比如发全员消息:
    echo "tellraw @a {\"text\":\"度假期间好好玩!\"}" | sudo tee mc_pipe
    
    给玩家发物品:
    echo -e "give Steve diamond 64\n" | sudo tee mc_pipe
    
    注:echo -e用于处理转义字符,末尾加\n确保命令被服务器识别执行

方法3:用Tmux(更现代的终端复用工具)

Tmux功能比Screen更丰富,操作逻辑类似:

  • 先安装Tmux:
    sudo apt update && sudo apt install tmux
    
  • 后台启动服务器会话:
    sudo tmux new-session -d -s mcserver 'java -Xmx10G -jar server.jar nogui'
    
  • 连接控制台:
    sudo tmux attach-session -t mcserver
    
  • 断开会话:按Ctrl+B再按D

为什么你之前的方法没奏效?

  • 用input.txt的方式只能在服务器启动时一次性注入文件内的命令,无法实时添加新命令
  • 用Screen时如果启动命令没加sudo,后续重新连接时用sudo会找不到会话,反之亦然,权限不一致会导致无法访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:40:28