Autor Tópico: Script Auto Restart  (Lida 303 vezes)

Offline KyllerBR

  • Usuário Ubuntu
  • *
  • Mensagens: 3
    • Ver perfil
Script Auto Restart
« Online: 07 de Abril de 2021, 12:01 »
Bom dia pessoal, sou muito leigo em Linux e não estou conseguindo criar um sh que faça auto restart.

Tenho um servidor de jogo que executa por este comando:

#!/bin/bash
stdbuf -oL "./theforgottenserver" > data/logs/console.log 2>&1;
sleep 1;

Todos os dias as 00:00 ele executa o processo de save e desliga o servidor, mas não volta. Já testei alguns scripts e ficam em loop reiniciando o server.

Como posso fazer para que ele reiniciei apenas uma vez após o save sem precisar fazer manualmente?

Obrigado.

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.584
  • Gratidão gera gratidão, lamúria gera lamúria...
    • Ver perfil
    • Blog do Zekke
Re:Script Auto Restart
« Resposta #1 Online: 08 de Abril de 2021, 17:47 »
Por "desligar o servidor", vc quer dizer desligar o processo do jogo, ou desligar a máquina?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline KyllerBR

  • Usuário Ubuntu
  • *
  • Mensagens: 3
    • Ver perfil
Re:Script Auto Restart
« Resposta #2 Online: 08 de Abril de 2021, 17:58 »
Por "desligar o servidor", vc quer dizer desligar o processo do jogo, ou desligar a máquina?

Olá, desculpa, não fui claro.
As 00:00 ele desliga o processo do jogo. Ai manualmente eu preciso executar o arquivo init.sh para startar o processo novamente.

o init.sh contém esse comando:

#!/bin/bash
stdbuf -oL "./theforgottenserver" > data/logs/console.log 2>&1;
sleep 1;

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.584
  • Gratidão gera gratidão, lamúria gera lamúria...
    • Ver perfil
    • Blog do Zekke
Re:Script Auto Restart
« Resposta #3 Online: 08 de Abril de 2021, 23:07 »
Ah, tá.

Você já tentou ver na lista de processos ativos ("ps aux") se o processo do jogo fica identificado, de forma que vc possa jogar um signal nele?

Algo do tipo "killall -TERM theforgottenserver"?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline KyllerBR

  • Usuário Ubuntu
  • *
  • Mensagens: 3
    • Ver perfil
Re:Script Auto Restart
« Resposta #4 Online: 09 de Abril de 2021, 00:00 »
Ah, tá.

Você já tentou ver na lista de processos ativos ("ps aux") se o processo do jogo fica identificado, de forma que vc possa jogar um signal nele?

Algo do tipo "killall -TERM theforgottenserver"?

Boa noite Zekkerj, não se é bem isso que você perguntou pq sou leigo em linux.

Segue uma print:

https://ibb.co/bgH4BvY

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.584
  • Gratidão gera gratidão, lamúria gera lamúria...
    • Ver perfil
    • Blog do Zekke
Re:Script Auto Restart
« Resposta #5 Online: 09 de Abril de 2021, 08:13 »
Sim, nessa saída do comando "top" que você mostrou o processo do jogo aparece ativo (e bastante ativo, aliás).

Nesse caso você pode usar o comando "killall" no seu script pra mandar o signal de término pro processo a partir do nome dele, sem precisar pesquisar o PID (número) do processo.

O que vc precisa estar atento é pra possibilidade de outro processo estar monitorando o processo do jogo e reiniciá-lo. Eu não conheço esse comando "stdbuf", pra prever o comportamento dele. Também não sei qual a programação de execução do script de inicialização; nesse caso, seria preciso entender melhor como as coisas estão sendo disparadas, para emitir uma opinião mais embasada.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D