3
将文本输入发送到分离的屏幕
我正在尝试在我的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”,它将正常关闭。 如果我远程登录并手动执行该服务器,则服务器运行良好,只需要运行它即可,而无需与远程计算机连接。
44
linux
gnu-screen