Como posso usar o ssh para executar um comando em uma máquina Unix e sair antes que o comando seja concluído?
Por exemplo, se eu digitar
ssh localhost 'sleep 60 &'
O ssh fica pendurado no meu terminal até que o sono seja concluído, mesmo que o sono seja executado em segundo plano.
&
lado de fora das aspas.Respostas:
O SSH possui uma opção -f que faz exatamente o mesmo que usar nohup no seu cliente, mas torna possível que o ssh solicite uma senha. Use-o assim:
Mas : o SSH ainda permanecerá em segundo plano; portanto, se você desligar o cliente antes da conclusão do comando no servidor, ele será abortado. Se você deseja que a conexão ssh seja fechada após a execução do comando, use a tela no lado do servidor:
fonte
Use nohup, redirecionamento stdout / stderr e execute o comando em segundo plano:
EDIT: Ou melhor ainda, basta usar o parâmetro -sh do ssh:
fonte
&>/dev/null
.Ou após o login usando
ssh
, inicie,screen
se desejar voltar mais tarde, para ver o progresso ou a saída.fonte