我正在尝试在我的unRAID服务器上运行minecraft服务器。
服务器将在外壳中运行,然后坐在那里等待输入。要停止它,我需要输入“ stop”并按Enter,然后它将保存世界并优雅地退出,我回到了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
MCunraid是我包含Craftbukkit.jar和所有世界文件的文件夹。如果我直接输入该屏幕行,则该屏幕会分离安装程序并启动服务器。如果我从脚本中执行该行,则似乎无法设置屏幕
要停止服务器,我需要在STOP中“键入”,然后按Enter。我的方法是
screen -S minecraft -X stuff "stop $(echo -ne '\r')"
向屏幕“ minecraft”发送文本停靠点和回车符。但这不起作用,即使我直接在命令行上输入也是如此。但是,如果我使用“ screen -r”,则可以在服务器运行的情况下进入屏幕,然后键入“ stop”,它将正常关闭。
如果我远程登录并手动执行该服务器,则服务器运行良好,只需要运行它即可,而无需与远程计算机连接。
#!/bin/bash
,并set -x
在脚本的顶部,并显示我们从脚本输出的跟踪。您可能需要查看unMENU文档,以找到输出结果。
screen
启动失败?尝试set -x
在脚本顶部(紧接在该#!
行之后)添加,然后在运行脚本时报告跟踪输出。