Nohup sobre ssh não retornará

11

Estou tentando fazer

[me@myPc]$ ssh me@server "nohup myBashScript.sh &"

Meu objetivo é iniciar o processo no servidor e retornar imediatamente.

Ele não está funcionando: o trabalho foi iniciado no servidor, mas ainda recebo a saída no myPc e no bash aguarde a conclusão antes de solicitar outro comando.

Por quê ? Não deveria! Alguma maneira de evitar isso?

  • myPc é RHEL6.2
  • servidor é ubuntu 10.04e
  • ambas as corridas openssh
user1219721
fonte

Respostas:

12

Enquanto a entrada ou saída ainda estiver aberta, o ssh manterá a conexão aberta. Para resolver isso, verifique se a entrada e a saída não estão abertas.

Por exemplo, use ssh -ne redirecione sua saída:

ssh -n [email protected] "nohup myscript.sh >/dev/null 2>&1 &"
Michael Hampton
fonte
E se eu ainda quiser myscript.shme fornecer uma saída, mas a sessão ssh ainda terminar após o script ser concluído? No meu caso, o próprio script inicia o processo nohup e depois retorna. Fiquei com a impressão de que ssh -Tme ajudaria a fazer isso.
Gauthier
@ Gauthier Em seguida, basta executar o script sem nohup.
Michael Hampton
Eu faço. O script inicia outros comandos com nohup e &, depois termina. Mas ssh não retorna. Os comandos chamados no script redirecionam o stdout para os arquivos. Ah, mas não stderr e stdin, poderia ser por quê?
Gauthier
Aí está! A entrada e a saída devem ser redirecionadas.
22419 Michael Michael Hampton
O que eu não entendo é que, se eu realmente entrar e obter um tty, iniciar o script que inicia os comandos nohup &, então eu tenho permissão para sair da sessão ssh. Não se queixa de que existem entradas e saídas abertas. Não é isso que ssh -tdeveria imitar?
Gauthier