A sessão SSH não será encerrada até que o comando (script) tenha terminado de ser executado no servidor remoto.
Dependendo se o script envia dados para um arquivo no servidor ou se envia dados para a saída padrão, você pode fazer uma de duas coisas.
-
Se enviar dados para um arquivo no servidor:
ssh user@host script.sh scp user@host:remote_output local_output process_output local_output
Isso basicamente usa
scp
para copiar os dados do servidor para a máquina local. -
Se enviar dados para a saída padrão:
ssh user@host script.sh >local_output process_output local_output
Isso redireciona a saída padrão do script para um arquivo local.
Para definir o programa em execução primeiro e aguarde:
ssh user@host script.sh &
# do other stuff
wait
scp user@host:remote_output local_output
process_output local_output
ou
ssh user@host script.sh >local_output &
# do other stuff
wait
process_output local_output
O wait
pausará o script até que o comando ssh
(executado como um processo em segundo plano) seja encerrado.