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.