Ce week-end, j’effectue quelques petites modifications sur les fichiers du serveur et, voulant annuler une faute de frappe, j’effectue un Ctrl + Z, par habitude.
Ma fenêtre d’édition du fichier se ferme. Surpris, je la rouvre puis continue mon travail. Au moment de fermer ma session SSH, lors du traditionnel exit
, j’obtiens ce message :
logout
There are stopped jobs.
Et là, pas moyen de quitter la session proprement. Cela est dû à ce fameux Ctrl + Z.
Bash et les tâches de fond
Dans Bash, un “stopped job” est une tâche qui a été reléguée temporairement en tâche de fond. Elle n’est pas active mais continue de consommer des ressources comme la mémoire système.
Cette tâche n’étant pas attachée à notre fenêtre de terminal, elle n’envoie rien en sortie et ne reçoit rien en entrée de la part de l’utilisateur.
Reprendre la main sur le shell
Pour savoir quelles sont les tâches de fond en cours sur le système, il suffit de taper la commande jobs
:
jobs
Cela liste toutes les tâches reléguées au second plan.
Ensuite, il suffit de taper la commande fg
(foreground) pour basculer la tâche de fond vers notre fenêtre active. Si nous voulons basculer vers la première tâche, nous entrons :
fg 1
Il suffit alors de quitter proprement la tâche pour pouvoir ensuite fermer notre session.