Menu Fermer

Commande jobs, fg et bg sur Linux : utilisations et exemples

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.

Commande jobs, fg et bg sur Linux : utilisations et exemples

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.

jobsLister tous les jobs en cours
bg %nPlace une tâche actuelle ou spécifié en arrière-plan, où n est l’identifiant de la tâche
fg %nDéplace une tâche actuelle ou spécifié au premier plan, où n est l’identifiant de la tâche
Control-ZArrête la tâche de premier plan et la place en arrière-plan comme une tâche arrêtée
Descriptif des commandes jobs, bg, fg

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
Lister les tâches en arrière-plan avec la commande jobs de Linux

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 mettre arrêté/mettre en pause un processus sur Linux avec CTRL+Z

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 reprendre l'exécution d'un processus en pause en arrière-plan avec la commande bg Linux

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
Comment déplacer un processus en arrière-plan au premier-plan avec la commande bg

Lorsque vous ne spécifiez aucun identifiant, fg reprend l’exécution de la dernière tâche placée en arrière plan.

Comment déplacer un processus en arrière-plan au premier-plan avec la commande bg
Lorsque vous placez un travail arrêté soit au premier plan en arrière-plan, le travail redémarre.