Mise au premier plan des tâches Linux

LinuxBeginner
Pratiquer maintenant

Introduction

Dans les systèmes d'exploitation Linux, la multitâche est une capacité essentielle qui permet aux utilisateurs d'exécuter plusieurs processus simultanément. Une fonctionnalité puissante des terminaux Linux est le contrôle des tâches (job control) - la capacité de gérer les processus en les exécutant en arrière-plan et en les ramenant au premier plan lorsqu'il est nécessaire.

Ce laboratoire (lab) vous présente le contrôle des tâches Linux, en particulier le processus de ramener des tâches en arrière-plan au premier plan. Vous apprendrez à démarrer des tâches en arrière-plan, à lister les tâches en cours d'exécution et à ramener des tâches spécifiques au premier plan en utilisant la commande fg. Ces compétences sont précieuses pour améliorer la productivité lors de travaux impliquant des opérations longues en environnement Linux.

Création et exécution de tâches en arrière - plan

Dans cette étape, vous apprendrez à créer un script qui simule une tâche longue et à l'exécuter en arrière-plan.

Comprendre les processus en premier plan et en arrière-plan

Dans un terminal Linux, les processus peuvent s'exécuter soit en premier plan, soit en arrière-plan :

  • Processus en premier plan : Lorsqu'une commande s'exécute en premier plan, elle occupe votre terminal jusqu'à sa fin. Vous ne pouvez pas exécuter d'autres commandes tant qu'elle n'est pas terminée.
  • Processus en arrière-plan : Lorsqu'une commande s'exécute en arrière-plan, elle s'exécute "en coulisse" tandis que votre terminal reste disponible pour d'autres tâches.

Commençons par nous déplacer dans le répertoire du projet :

cd ~/project

Maintenant, créons un simple script qui simule une tâche longue. Nous l'utiliserons pour démontrer les opérations en arrière-plan et en premier plan :

nano long_running_task.sh

Dans l'éditeur nano, entrez le code suivant :

#!/bin/bash
echo "Starting a long task..."
sleep 60 ## This will pause for 60 seconds
echo "Task completed."

Pour enregistrer le fichier, appuyez sur Ctrl+O, puis sur Entrée, et enfin sur Ctrl+X pour quitter nano.

Ensuite, rendez le script exécutable avec la commande suivante :

chmod +x long_running_task.sh

Exécutons ce script en arrière-plan en ajoutant un astérisque commercial (&) à la fin de la commande :

./long_running_task.sh &

Vous devriez voir une sortie similaire à celle-ci :

[1] 1234
Starting a long task...

Le nombre entre crochets [1] est le numéro de la tâche (job number), et le nombre qui le suit (dans cet exemple, 1234) est l'identifiant du processus. Votre terminal est maintenant disponible pour que vous puissiez entrer d'autres commandes tandis que le script continue de s'exécuter en arrière-plan.

Gestion de plusieurs tâches en arrière - plan

Dans cette étape, vous apprendrez à démarrer plusieurs tâches en arrière-plan et à vérifier leur statut.

Tout d'abord, démarrons une autre instance de notre script en arrière-plan :

./long_running_task.sh &

Vous devriez voir un autre numéro de tâche (job number) et un identifiant de processus s'afficher, ainsi que le message "Starting a long task...".

Vérification des tâches en arrière-plan

Pour voir la liste de toutes les tâches en cours d'exécution en arrière-plan, utilisez la commande jobs :

jobs

La sortie devrait ressembler à ceci :

[1]-  Running                 ./long_running_task.sh &
[2]+  Running                 ./long_running_task.sh &

Cela montre :

  • Les numéros de tâches entre crochets [1] et [2]
  • Le statut de chaque tâche (Running)
  • La commande qui a été exécutée
  • Le symbole + indique la tâche "courante" (la plus récemment démarrée ou utilisée)
  • Le symbole - indique la tâche qui deviendrait la tâche courante si la tâche courante était terminée

Démarrons une autre tâche en arrière-plan :

./long_running_task.sh &

Vérifions à nouveau la liste des tâches :

jobs

Vous devriez maintenant voir plusieurs tâches en cours d'exécution dans la liste.

Amener des tâches au premier plan

Dans cette étape, vous apprendrez à rappeler des tâches en arrière-plan en premier plan en utilisant la commande fg.

Utilisation de la commande fg

La commande fg rappelle une tâche en arrière-plan en premier plan, la rendant le processus actif dans votre terminal. Lorsqu'une tâche est en premier plan, elle peut recevoir des entrées au clavier et son affichage est directement affiché dans le terminal.

Pour rappeler la tâche en arrière-plan la plus récente (marquée avec + dans la sortie de la commande jobs) en premier plan, tapez simplement :

fg

Vous devriez voir la commande s'exécuter en premier plan, et votre terminal sera occupé jusqu'à la fin de la commande. La sortie ressemblera à ceci :

./long_running_task.sh

Et si la tâche est toujours en cours d'exécution, vous devrez attendre qu'elle se termine. Lorsqu'elle est terminée, vous verrez :

Task completed.

Si vous avez besoin d'interrompre un processus en premier plan avant qu'il ne se termine, appuyez sur Ctrl+C.

Démarrons une autre tâche en arrière-plan :

./long_running_task.sh &

Vérifions maintenant la liste des tâches :

jobs

Amener une tâche spécifique au premier plan

Dans cette étape, vous apprendrez à rappeler une tâche en arrière-plan spécifique en premier plan en utilisant son numéro de tâche (job number).

Utilisation de fg avec des numéros de tâche

Lorsque vous avez plusieurs tâches en arrière-plan, vous pouvez rappeler une tâche spécifique en premier plan en faisant référence à son numéro de tâche avec la commande fg.

Tout d'abord, assurons-nous d'avoir plusieurs tâches en cours d'exécution. Démarrons quelques nouvelles tâches en arrière-plan :

./long_running_task.sh &
./long_running_task.sh &

Vérifions la liste des tâches et leurs numéros :

jobs

Pour rappeler une tâche spécifique en premier plan, utilisez le format fg %jobnumber. Par exemple, pour rappeler la tâche numéro 1 en premier plan :

fg %1

La sortie montrera la commande s'exécutant en premier plan :

./long_running_task.sh

Attendez que la tâche se termine ou appuyez sur Ctrl+C pour l'interrompre.

Maintenant, essayez de rappeler une autre tâche en premier plan. Par exemple, si vous avez une tâche de numéro 2 :

fg %2

Cette technique est utile lorsque vous avez besoin de basculer entre plusieurs tâches et de vous concentrer sur un processus spécifique selon les besoins.

Résumé

Dans ce laboratoire (lab), vous avez appris des compétences essentielles pour gérer les processus dans un environnement Linux :

  1. Création et exécution de tâches en arrière-plan : Vous avez créé un script qui simule une opération longue et avez appris à l'exécuter en arrière-plan en utilisant le symbole &.

  2. Gestion de plusieurs tâches en arrière-plan : Vous avez appris à démarrer plusieurs tâches en arrière-plan et à vérifier leur statut en utilisant la commande jobs.

  3. Rappel de tâches en premier plan : Vous avez découvert comment utiliser la commande fg pour rappeler des tâches en arrière-plan en premier plan, que ce soit la tâche la plus récente ou une tâche spécifique en faisant référence à son numéro de tâche (job number).

Ces techniques de contrôle de tâches sont fondamentales pour un multitâche efficace sous Linux. Elles vous permettent de :

  • Exécuter des processus longs sans bloquer votre terminal
  • Surveiller plusieurs opérations simultanément
  • Basculer entre les tâches selon les besoins
  • Gérer votre flux de travail plus efficacement

Au fur et à mesure que vous continuerez à travailler avec des systèmes Linux, ces commandes deviendront des outils précieux dans vos opérations quotidiennes, en particulier lorsque vous travaillerez avec des serveurs, exécuterez des scripts ou gérerez plusieurs processus.