如何与 rc.local 启动的脚本进行交互?

如何与 rc.local 启动的脚本进行交互?

我有一个从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

相关内容