Se sua tarefa já foi lançada, é tarde demais *
para considerar soluções alternativas que inserem uma camada adicional entre a sessão ssh
e o shell executando o comando, como screen
, tmux
, byobu
, nohup
e os gostos.
Se o suporte do seu processo for colocado em segundo plano e particularmente não travar quando stdout
e stderr
forem unwritable / closed, você poderá colocá-lo em segundo plano antes de efetuar logout com Control Z e bg
, em seguida, desanexá-lo do seu shell com o disown
incorporado.
por exemplo:
$ ssh localhost
You have new mail.
Last login: Fri Jun 6 11:26:56 2014
$ /bin/sleep 3600
^Z[1] + Stopped /bin/sleep 3600
$ bg
[1] /bin/sleep 3600&
$ jobs
[1] + Running /bin/sleep 3600
$ disown %1
$ exit
Connection to localhost closed.
$ ps -ef|grep sleep
jlliagre 12864 1 0 21:12 ? 00:00:00 /bin/sleep 3600
jlliagre 13056 12477 0 21:13 pts/18 00:00:00 grep sleep
$
*
Como Bob comentou, na verdade existem várias maneiras de reparar uma sessão tty no Linux. repty, retty , injcode e neercs . O mais avançado parece ser reptyr mas você pode precisar de privilégios de root para permitir que o ptrace hackeie seu processo.