A questão aqui é o terminal de controle do trabalho. Não tenho conhecimento de nenhum método para alterar o terminal de controle, o que você precisaria fazer se quisesse mover seu programa para uma tela.
No entanto, se sua tarefa não tiver entrada ou saída importante em sua entrada / saída / erro padrão, você poderá considerar o shell integrado em disown
, que remove uma tarefa em segundo plano da tabela de tarefas ativas. Isto implica que o shell não enviará ao trabalho um SIGHUP quando ele morrer (por exemplo, devido à falha de conexão do seu host ssh'ing). Exemplo:
$ long-running-job
^Z
$ bg
(shell displays backgrounding notification)
$ disown
E seu trabalho deve continuar. No entanto, a E / S será fechada, então não há ajuda se você tiver alguma atividade stdin / stdout / stderr.