我有一个从rc.local
(在本例中为 minecraft 服务器)运行的脚本,我需要能够与其交互(稍后连接到其 STDIN 和 STDOUT)。我该怎么做?
答案1
您想要做的是使用screen
。它允许在其会话内生成一个进程并从中分离。本质上,您的问题类似于这。
您要执行的 3 个步骤:
下面的行必须放入你的
/etc/rc.local
。&
在它的末尾添加符号(重要!)screen -S MyMinecraftServer -d -m java -jar ./SOMEFILES/CLEANUP/minecraft_server.1.8.8.jar nogui
这是您在命令行中查找会话时要执行的操作:
screen -ls
示例输出:
There is a screen on: 1720.MyMinecraftServer (2017年01月12日 13时54分36秒) (Detached) 1 Socket in /var/run/screen/S-xieerqi.
以下是附加方法:
screen -x 1720.MyMinecraftServer
笔记:从启动 minecraft 服务器/etc/rc.local
可能存在潜在的安全漏洞。请考虑使用su username -c '<screen command here>' &
以其他用户身份运行服务器。另请参阅: https://serverfault.com/a/422952/363611