jobs, fg et bg sont des commandes de bases Linux qui permettent d’exécuter des processus en arrière plan.
Elle se nomme alors tâche ou travail.
Vous pouvez à tout moment revenir sur le processus ou arrêter ce dernier.
Dans ce tutoriel, je vous montre comment utiliser les jobs, fg et bg sur Linux avec de nombreux exemples.
Table des matières
Comment utiliser les commandes jobs, fg et bg
Un job (travail ou tâche) est un processus que le shell gère. Chaque travail est attribué à un identifiant de travail séquentiel. Parce qu’un travail est un processus, chaque travail a un PID associé. Il existe trois types de jobs :
- Au premier plan : lorsque vous entrez une commande dans une fenêtre de terminal, la commande occupe la fenêtre du terminal jusqu’à ce qu’elle se termine
- En cours d’exécution (Running) : Lorsque vous entrez un symbole ampersand (&) à la fin d’une ligne de commande, la commande s’exécute sans occupation de la fenêtre du terminal. L’invite Shell est affichée immédiatement après avoir appuyé sur Entrée
- Arrêté (Stopped) : Si vous appuyez sur CTRL+Z pour un travail de premier plan ou envoyer le signal STOP pour une tâche d’arrière-plan, le travail s’arrête
Pour interagir avec un processus et changer son statut, on envoie un signal à ce processus.
Cela peut se faire avec la commande kill mais des commandes spécifiques existent pour faciliter ces opératons.
jobs | Lister tous les jobs en cours |
bg %n | Place une tâche actuelle ou spécifié en arrière-plan, où n est l’identifiant de la tâche |
fg %n | Déplace une tâche actuelle ou spécifié au premier plan, où n est l’identifiant de la tâche |
Control-Z | Arrête la tâche de premier plan et la place en arrière-plan comme une tâche arrêtée |
Commande jobs, fg et bg sur Linux : utilisations et exemples
Comment exécuter un travail en arrière-plan
Dans Linux, pour exécuter une commande en arrière-plan depuis un shell, vous devez ajouter le caractère Ampersand (&) à la fin de la commande.
Par exemple, la commande ci-dessous met le shell en pause pendant 100s :
sleep 100
Pour l’exécuter en arrière plan, ajoutez & à la fin :
sleep 100&
Le numéro entre crochet vous indique le numéro de la tâche en arrière-plan.
Ensuite utilisez la commande jobs pour lister les travaux en cours :
jobs
La commande répertorie tous les travaux sur le système; actif, arrêté, ou autre état.
- -l – Liste des PIDS en plus des informations par défaut
- -n – liste uniquement les processus qui ont changé depuis la dernière notification
- -p – Liste pids seulement -R – Afficher uniquement des emplois en cours d’exécution
- -s – Afficher uniquement les emplois arrêtés
Comment mettre arrêté/mettre en pause un processus sur Linux
Saisissez la commande puis lors de son exécution, appuyez sur CTRL+ Z pour suspendre l’exécution d’une tâche et la placez en arrière plan.
La mention Stopped apparaît alors.
La commande jobs confirme que la tâche est bien en pause en arrière plan.
Comment reprendre l’exécution d’un processus en pause en arrière-plan
Pour reprendre l’exécution d’un processus en arrête, on utilise la commande bg.
Voici la syntaxe :
bg [JOB_SPEC]
- % n – où n est le numéro de travail
- %abc – fait référence à un emploi lancé par une commande commençant par ABC
- %?abc – fait référence à un emploi lancé par une commande contenant abc
- – – Spécifie le travail précédent
Dans l’exemple, ci-dessous j’exécute la commande sleep :
sleep 1000
Puis j’appuie sur CTRL+Z pour l’arrêter.
Pour reprendre l’exécution du processus en arrière, j’utilise la commande bg.
Je pourrai spécifier le numéro :
bg %1
Mais on peut aussi utiliser la commande seul qui va reprendre le dernier processus arrêté.
La commande jobs confirme bien que la tâche passe en état Running.
Comment déplacer un processus en arrière-plan au premier-plan
Vous pouvez utiliser la commande fg pour apporter une tâche d’arrière-plan vers l’avant plan quelque soit sont état.
Par exemple pour replacer une tâche avec l’identifiant 1 de l’arrière-plan à l’avant plan :
fg % 1
Lorsque vous ne spécifiez aucun identifiant, fg reprend l’exécution de la dernière tâche placée en arrière plan.
Liens
- Utiliser la commande PS pour lister les processus sur Linux avec des exemples
- VMStat : Mesures de performance Linux
- Top : lister les processus sur Linux
- Commande PS : lister les processus sur Linux
- Utiliser la commande Kill, Killall, pkill pour arrêter un processus sur Linux
- Comment utiliser les commandes nice et renice sur Linux pour définir des priorités de processus
- Comment trouver et tuer un processus Zombie sur Linux (Defunct)
- 6 exemples d’utilisation de la commande Kill sur Linux
- Qu’est-ce que le load average sur Linux
- Mesurer le débit et lister les connexions réseaux sur Linux
- La mémoire sur Linux : comment ça marche