J'essaie de savoir comment exécuter une commande en arrière-plan, puis la faire apparaître au premier plan plus tard. J'en ai marre des tutoriels et des réponses où les gens disent que c'est simple, ajoutez simplement &
à la fin de la commande pour l'exécuter en arrière-plan. Cela ne fonctionne que dans une seule fenêtre de terminal. Je veux mettre la commande en arrière-plan dans un terminal et la ramener au premier plan après la réouverture du terminal
Exemple:
$ grunt &
$ jobs
$ [1]+ Running grunt &
Bien sûr, après la fermeture du terminal, aucun travail n’est trouvé.
Exemple suivant:
$ grunt & disown #the same behavior has: $ setsid grunt &
$ jobs
$ [nothing] #but ps shows that grunt is working
after close terminal, grunt doesn't work
Qu'ai-je fait de mal? Quelqu'un pourrait-il m'expliquer comment exécuter la commande en arrière-plan et la ramener au premier plan?.
C'est impossible comme tu veux.
Passons en revue quelques concepts de base:
Si vous avez fermé le terminal, tous les processus de la session sont morts, à l'exception de ceux (démons) associés au processus init. Et il n'y a aucun moyen de leur donner à nouveau un terminal de contrôle.
Dans Word, le reparenting de processus est très limité dans les systèmes POSIX (la démonisation est une exception) et vos exigences ne peuvent pas être satisfaites.
Installez screen
name__:
Sudo apt-get install screen
Démarrer screen
name__:
screen -S session_name
Exécutez vos commandes ce dont vous avez besoin.
Détachez screen
du terminal (vos commandes seront toujours en cours d'exécution):
Presse CTRL+a+d
Fermer le terminal
Ouvrez un autre terminal et rattachez la dernière session screen
name__:
screen -r
Pour plus d'informations et d'options supplémentaires pour screen
name__, reportez-vous à man screen
.
Avez-vous essayé: byobu
ou tmux
qui sont des multiplexeurs de terminaux. Ce n'est pas exactement ce que vous recherchez, mais le comportement est similaire.
byobu-screen
Ensuite, lancez votre commande, pour détacher:
byobu-screen -d
Pour reprendre:
byobu-screen -r