Duplication possible :
Comment puis-je désavouer un processus en cours d'exécution et l'associer à un nouveau shell d'écran ?
J'ai lancé une commande qui dure longtemps.
J'ai dû me déconnecter donc je l'ai déplacée en tâche de fond (avec CTRL+Z et bg
) avant de quitter.
Quelque chose comme ça :
$ my_command
***command is beeing executed and is taking a long time***
^Z
[1]+ Stopped my_command
$ bg
[1]+ my_command &
$ exit
Je me suis reconnecté et je peux voir la commande dans la liste des processus mais je ne peux pas récupérer avec fg
.
$ fg
-bash: fg: current: no such job
Comment récupérer mon travail au premier plan ?
Réponse acceptée :
Si vous avez déjà commencé quelque chose quelque part, que vous l'avez mis en arrière-plan et que vous devez maintenant l'attacher à un nouveau terminal, vous pouvez utiliser reptyr
pour le remettre en place. (L'man
La page résume la commande comme "Reparent un programme en cours d'exécution à un nouveau terminal".)
La raison pour laquelle vous ne pouvez pas le voir dans la commande "jobs" ou utiliser "fg" pour le mettre au premier plan est que ces commandes sont en fait intégrées au shell. Techniquement, ils ne détachent pas les processus du terminal auquel vous êtes connecté, donc lorsque vous quittez le shell, ils devraient quitter également (vous devriez recevoir un avertissement lorsque vous essayez de quitter).