Script Auto Restart

Iniciado por KyllerBR, 07 de Abril de 2021, 12:01

tópico anterior - próximo tópico

KyllerBR

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.

zekkerj

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

KyllerBR

Citação de: zekkerj 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?

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;

zekkerj

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

KyllerBR

Citação de: zekkerj 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"?

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

Segue uma print:

https://ibb.co/bgH4BvY

zekkerj

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