Como garantir que o arquivo pid seja removido quando o processo correspondente terminar?

0

Eu li alguns posts relacionados . Eu tentei, mas não funciona em funções definidas no script.

ssh someuser@host /path/to/scirpt.sh

o script na máquina remota:

#!/bin/sh
startup_cleanup_pid()
{
        java SomeMainClass 1>somelog 2>&1 &
        PID=$!
        echo $PID > pid
        wait $PID
        rm pid
}

startup_cleanup_pid 1>/dev/null 2>&1 &
#startup_cleanup_pid &   #this does not work either
echo "about to exit"
exit 0

Eu gostaria de destacar o processo filho. Como posso fazer isso?

EDITAR: O que estou tentando alcançar:

1) Quando eu usei o comando ssh ssh someuser@host /path/to/startup_java_process.sh e o script acima, a sessão ssh não terminou e eu não sabia por quê. Apenas enforcou lá. Eu gostaria que a sessão ssh terminasse quando atingisse a saída 0 nesse script.

2) Quando o processo java terminar, certifique-se de que o arquivo pid também seja removido.

link mencionado no comentário praticamente resolveu o meu problema.

    
por du369 31.08.2018 / 06:54

0 respostas

Tags