Th3*_*ger 7 startup command-line scripts minecraft
我有一个从rc.local
(在这种情况下是 minecraft 服务器)运行的脚本,我需要能够与之交互(稍后连接到它的 STDIN 和 STDOUT)。我怎样才能做到这一点?
你想要做的是使用screen
. 它允许在其会话中生成一个进程并与之分离。本质上,您的问题与此类似。
您想要执行的 3 个步骤:
下面的行必须进入您的/etc/rc.local
. &
在它的末尾添加符号(重要!)
screen -S MyMinecraftServer -d -m java -jar ./SOMEFILES/CLEANUP/minecraft_server.1.8.8.jar nogui
Run Code Online (Sandbox Code Playgroud)这是您从命令行查找会话的操作:
screen -ls
Run Code Online (Sandbox Code Playgroud)
示例输出:
There is a screen on:
1720.MyMinecraftServer (2017?01?12? 13?54?36?) (Detached)
1 Socket in /var/run/screen/S-xieerqi.
Run Code Online (Sandbox Code Playgroud)这就是你附加到它的方式:
screen -x 1720.MyMinecraftServer
Run Code Online (Sandbox Code Playgroud)注意:启动 minecraft 服务器/etc/rc.local
可能是一个潜在的安全漏洞。考虑使用su username -c '<screen command here>' &
以不同用户身份运行服务器。另见:https : //serverfault.com/a/422952/363611