Shell sabe se o minecraft está em execução ou não

0

Isso se aplica a qualquer outro aplicativo executado no linux via java ou qualquer tipo de wrapper.

Em Minecraft do Monitor do Sistema, aparece como "java". isso é problemático ...

e se o aplicativo java em execução não for minecraft. e se houver vários?

o melhor que eu tenho para o meu roteiro é:

if ps ax | grep -v grep | grep java > /dev/null
then
echo "Minecraft is running"
else
echo "Minecraft not running, run Minecraft to continue"
fi

Como posso ter certeza de que o Minecraft está sendo executado e não apenas de qualquer aplicativo java antigo?

Obrigado

    
por tatsu 05.05.2017 / 20:08

2 respostas

1

Em primeiro lugar, quando o minecraft estiver em execução, execute

pgrep -a java

Agora encontre algo único, talvez seja apenas minecraft .

Você receberá seu pid executando

pgrep -f minecraft
    
por davidbaumann 05.05.2017 / 20:45
0

Realmente, a melhor maneira de fazer isso é escrever o PID em um arquivo quando você o inicia via shell script. Então você pode enviar um sinal 0 para o pid para ver se ele está sendo executado.

kill -0 $(cat /run/minecraft.pid)

Isso retornará 0 se estiver em execução, < 0, se não estiver.

Caso contrário, se você não tiver controle sobre o início do processo, então uma pesquisa como os shows davidbaumann funcionará principalmente.

    
por mjb2kmn 05.05.2017 / 21:15