Como recuperar um trabalho em segundo plano de um shell anterior? [duplicado]

17

Eu lancei um comando que dura muito tempo. Eu tive que desconectar, então mudei-o em segundo plano (com CTRL + Z e bg ) antes de sair.

Algo parecido com isto:

$ my_command
***command is beeing executed and is taking a long time***
^Z
[1]+  Stopped                 my_command
$ bg
[1]+ my_command &
$ exit

Eu reconectei e posso ver o comando na lista de processos, mas não consigo recuperar com fg .

$ fg
-bash: fg: current: no such job

Como recupero meu trabalho em primeiro plano?

    
por SamK 25.09.2012 / 18:03

1 resposta

22

Se você já começou algo em algum lugar, fez um background e agora precisa anexá-lo a um novo terminal, você pode usar reptyr para reconectá-lo. (A página man resume o comando como "Reparando um programa em execução para um novo terminal".)

O motivo pelo qual você não pode vê-lo no comando "jobs" ou usar "fg" para trazê-lo para o primeiro plano é porque esses comandos são realmente integrados ao shell. Eles não separam tecnicamente os processos do terminal com o qual você está conectado, então quando você sai do shell eles devem sair (você deve receber um aviso quando tentar sair).

    
por 25.09.2012 / 19:50