Possibile duplicato:
Come posso annullare un processo in esecuzione e associarlo a una nuova shell dello schermo?
Ho lanciato un comando che dura a lungo.
Ho dovuto disconnettermi quindi l'ho spostato in background (con CTRL+Z e bg
) prima di uscire.
Qualcosa del genere:
$ my_command
***command is beeing executed and is taking a long time***
^Z
[1]+ Stopped my_command
$ bg
[1]+ my_command &
$ exit
Mi sono riconnesso e posso vedere il comando nell'elenco dei processi ma non riesco a recuperare con fg
.
$ fg
-bash: fg: current: no such job
Come faccio a recuperare il mio lavoro in primo piano?
Risposta accettata:
Se hai già avviato qualcosa da qualche parte, l'hai eseguito in background e ora devi collegarlo a un nuovo terminale, puoi utilizzare reptyr
per riattaccarlo. (L'man
La pagina riassume il comando come "Reparent un programma in esecuzione su un nuovo terminale".)
Il motivo per cui non puoi vederlo nel comando "jobs" o usare "fg" per portarlo in primo piano è perché questi comandi sono effettivamente integrati nella shell. Tecnicamente non staccano i processi dal terminale a cui sei connesso, quindi quando esci dalla shell dovrebbero anche exit (dovresti ricevere un avviso quando tenti di uscire).