Obtendo meu ShellScript para executar um arquivo java por um determinado período de tempo [duplicado]

0

Estou tentando fazer com que meu arquivo .sh execute um programa Java por um período de tempo específico.

Este é o meu arquivo .sh :

#Runs Java Repeatedly.
#Reset directory
cd
#Go until src
cd Desktop/Lin\ Lab/Java\ Workspace/SandBubbler/src/

for((i = 0; i < 10; i++))
do
    java testerPackage.BubblerSimulation
    #kill process after x amount of seconds.
done

Sou novo no Unix / Linux (comecei a aprender ontem) então, por favor, explique de uma forma simples. Obrigado!

    
por Furkan Toprak 11.07.2017 / 20:36

1 resposta

0

for ((i=0; i<10; i++)); do
    java testerPackage.BubblerSimulation &
    javapid=$!
    sleep 10
    kill -TERM $javapid
    wait $javapid
done

Usando & depois que um comando é executado em segundo plano e continua no próximo comando. Em seguida, capturamos o pid (ID do processo) do último comando em segundo plano que está no valor de variável especial de $! .

sleep é um comando que simplesmente pausará pelo número especificado de segundos.

Em seguida, usamos o comando kill com o pid capturado para informar ao processo java para finalizar a si mesmo e aguardar a limpeza ser concluída antes de repetir a próxima execução do loop.

    
por 11.07.2017 / 20:45

Tags