我正在尝试在我的 unRAID 服务器上运行 minecraft 服务器。
服务器将在 shell 中运行,然后坐在那里等待输入。要停止它,我需要输入“停止”并按回车键,然后它会拯救世界并优雅地退出,然后我又回到了 shell 中。如果我通过 telnet 进入 NAS 盒子运行它,这一切都有效,但我想直接在盒子上运行它。
这是我之前的第一次尝试:
#define USER_SCRIPT_LABEL Start Minecraft server
#define USER_SCRIPT_DESCR Start minecraft server. needs sde2 mounted first
cd /mnt/disk/sde2/MCunraid
screen -d -m -S minecraft /usr/lib/java/bin/java -Xincgc -Xmx1024M -jar CraftBukkit.jar
Run Code Online (Sandbox Code Playgroud)
MCunraid 是我拥有 Craftbukkit.jar 和所有世界文件等的文件夹。如果我直接输入该屏幕行,屏幕会设置分离并启动服务器。如果我从脚本中执行该行,它似乎没有设置屏幕
要停止服务器,我需要在 STOP 中“键入”,然后按 Enter。我的方法是
screen -S minecraft -X stuff "stop $(echo -ne '\r')"
Run Code Online (Sandbox Code Playgroud)
将文本停止和回车发送到屏幕“我的世界”。但这不起作用,即使我直接在命令行上输入它。但是如果我'screen -r'我可以在服务器运行的情况下进入屏幕,然后输入'stop'并正确关闭。
如果我 telnet 进入并手动执行,服务器运行良好,只需要运行它而无需从我的远程计算机连接。