Como interajo com um script iniciado por rc.local?

6

Eu tenho um script que é executado a partir de rc.local (um servidor de minecraft, neste caso) com o qual eu preciso ser capaz de interagir (conectar ao seu STDIN e STDOUT mais tarde). Como posso fazer isso?

    
por Th3Harbinger 12.01.2017 / 21:12

1 resposta

7

O que você quer fazer é usar screen . Permite gerar um processo dentro de sua sessão e separar-se dele. Essencialmente, sua pergunta é semelhante a esta .

Os 3 passos que você quer fazer:

  • A linha abaixo precisa entrar no seu /etc/rc.local . Adicione o sinal & no final (importante!)

    screen -S MyMinecraftServer -d -m  java -jar ./SOMEFILES/CLEANUP/minecraft_server.1.8.8.jar nogui   
    
  • Isso é o que você faria da linha de comando para encontrar sua sessão:

    screen -ls
    

    Exemplo de saída:

    There is a screen on:
        1720.MyMinecraftServer  (2017年01月12日 13时54分36秒) (Detached)
    1 Socket in /var/run/screen/S-xieerqi.
    
  • E é assim que você se conecta a ele:

    screen -x 1720.MyMinecraftServer
    

OBSERVAÇÃO : o início do servidor de minecraft a partir de /etc/rc.local pode ser uma possível brecha de segurança. Considere usar su username -c '<screen command here>' & para executar o servidor como um usuário diferente. Veja também: link

    
por Sergiy Kolodyazhnyy 12.01.2017 / 21:56