DevOps

Maîtriser le Contrôle des Travaux Linux

La fonctionnalité de contrôle des travaux, également connue sous le nom de Bash’s Job Control, est une composante puissante intégrée aux systèmes d’exploitation de type Unix, dont Linux fait partie. Elle offre aux utilisateurs une manière souple et efficace de gérer les processus en arrière-plan et en premier plan au sein du terminal. Cet outil est particulièrement utile dans le contexte de l’administration système et de l’exécution de scripts.

La première étape pour comprendre et utiliser cette fonctionnalité consiste à saisir le concept fondamental de processus dans un environnement Unix. Un processus peut être défini comme un programme en cours d’exécution, et chaque processus a un identifiant unique appelé PID (Process ID). Le contrôle des travaux intervient lorsque l’on exécute plusieurs commandes dans un terminal, certaines en arrière-plan et d’autres en premier plan.

L’une des commandes fondamentales pour utiliser le contrôle des travaux est bg (background), qui permet de démarrer un processus en arrière-plan. Lorsqu’un processus est en cours d’exécution en arrière-plan, il n’occupe pas le terminal et l’utilisateur peut continuer à saisir d’autres commandes. Par exemple, si l’on exécute une commande comme suit :

bash
$ commande_longue &

Le & à la fin indique que la commande doit s’exécuter en arrière-plan. Si, après avoir démarré une commande en arrière-plan, l’on souhaite la basculer en premier plan, on peut utiliser la commande fg (foreground). Cette commande prend en argument le numéro du travail (job) ou le PID du processus à ramener en premier plan. Par exemple :

bash
$ fg %1

Cette commande ramène le premier travail en arrière-plan en premier plan. Le pourcentage suivi du numéro du travail est une référence au job tel que l’affecte le shell.

Lorsque l’on exécute plusieurs travaux en arrière-plan, on peut les lister en utilisant la commande jobs. Cela affiche une liste des travaux actuels avec leurs numéros et leur statut. Si l’on souhaite mettre un travail en arrière-plan en pause, on peut utiliser la commande Ctrl + Z. Ensuite, pour reprendre ou relancer un travail en pause, on peut utiliser la commande bg ou fg en fonction du besoin.

La gestion des travaux avec le contrôle des travaux s’étend également à la possibilité de suspendre un travail en cours d’exécution avec la commande Ctrl + Z et de le mettre en arrière-plan. Pour mettre un travail en pause et le laisser en arrière-plan, on peut utiliser la commande bg. De même, pour mettre un travail en pause et le laisser en premier plan, la commande fg est appropriée.

Pour arrêter un travail, on peut utiliser la commande kill suivie du numéro du travail ou du PID du processus. Par exemple :

bash
$ kill %1

Cela enverra un signal d’arrêt au travail numéro 1. Si l’on souhaite envoyer un signal différent, on peut spécifier le numéro du signal avec l’option -. Par exemple :

bash
$ kill -9 %1

Cette commande envoie un signal SIGKILL au travail numéro 1, forçant son arrêt immédiat.

Un aspect intéressant du contrôle des travaux est la capacité de mettre en pause et de reprendre l’exécution d’un travail. Si l’on souhaite mettre en pause un travail spécifique, on peut utiliser la commande kill -STOP suivie du numéro du travail ou du PID du processus. Par exemple :

bash
$ kill -STOP %1

Cela mettra en pause le travail numéro 1. Pour reprendre l’exécution, on peut utiliser la commande kill -CONT :

bash
$ kill -CONT %1

Cela relancera l’exécution du travail.

Il est également possible de gérer plusieurs travaux simultanément en utilisant les opérateurs de contrôle des travaux. Par exemple, pour exécuter plusieurs commandes en arrière-plan, on peut les séparer par des points-virgules et les exécuter comme une seule commande. Ainsi :

bash
$ commande1 & commande2 & commande3 &

Cela démarrera les trois commandes en arrière-plan simultanément. Ensuite, on peut utiliser jobs pour voir la liste des travaux en cours et fg ou bg pour les manipuler selon les besoins.

En résumé, le contrôle des travaux dans l’environnement Bash offre une gamme étendue de fonctionnalités permettant aux utilisateurs de gérer efficacement les processus en arrière-plan et en premier plan. De la gestion des travaux individuels à la manipulation de plusieurs travaux simultanément, cette fonctionnalité offre une flexibilité considérable dans l’administration du système et l’exécution de tâches complexes. En comprenant les commandes de base telles que bg, fg, jobs, kill, ainsi que les opérateurs de contrôle des travaux, les utilisateurs peuvent optimiser leur expérience dans un environnement Unix/Linux, améliorant ainsi leur efficacité et leur productivité.

Plus de connaissances

Pour approfondir notre compréhension du contrôle des travaux (Job Control) dans l’environnement Bash de Linux, explorons davantage les détails et les nuances de cette fonctionnalité, mettant en lumière ses divers aspects et son utilité pratique.

La gestion des travaux en arrière-plan est un élément essentiel pour les utilisateurs Linux qui souhaitent optimiser leur flux de travail et gérer efficacement l’exécution de plusieurs tâches simultanées. Le contrôle des travaux offre une interface flexible pour accomplir ces objectifs, avec des commandes spécifiques permettant de manipuler les processus en cours d’exécution.

Lorsqu’un processus est exécuté en arrière-plan, il est détaché du terminal, permettant ainsi à l’utilisateur de continuer à travailler avec d’autres commandes sans être bloqué par l’exécution du processus en question. Cela est particulièrement utile pour des tâches gourmandes en temps, telles que la compilation de programmes ou la manipulation de fichiers volumineux, où l’utilisateur peut exploiter le temps d’attente en exécutant d’autres opérations.

Une autre commande clé dans le contrôle des travaux est disown, qui permet de détacher un travail du terminal. Cela signifie que même si l’on ferme la session ou déconnecte l’utilisateur, le travail continue son exécution en arrière-plan. Par exemple, si l’on a démarré un processus en arrière-plan avec la commande :

bash
$ commande_longue &

On peut ensuite utiliser disown pour détacher ce travail du terminal :

bash
$ disown %1

Cela assure que le travail numéro 1 n’est plus associé au terminal, offrant une autonomie supplémentaire à l’utilisateur.

Un aspect crucial de la gestion des travaux est la capacité de rediriger la sortie des travaux en arrière-plan. Lorsqu’un processus s’exécute en arrière-plan, la sortie standard (stdout) est généralement redirigée vers le terminal. Cependant, on peut rediriger cette sortie vers un fichier en utilisant la syntaxe suivante :

bash
$ commande_longue > fichier_sortie 2>&1 &

Dans cette commande, > fichier_sortie redirige la sortie standard vers un fichier, et 2>&1 redirige également la sortie d’erreur standard (stderr) vers le même fichier. Cela garantit que toutes les sorties, y compris les erreurs, sont enregistrées dans le fichier spécifié.

Un autre élément important du contrôle des travaux est la possibilité de mettre en place des tâches périodiques, souvent appelées « cron jobs », qui s’exécutent à des intervalles réguliers prédéfinis. Pour ce faire, on utilise le démon cron, qui est responsable de l’exécution de ces tâches planifiées. On peut éditer la table de cron en utilisant la commande crontab -e, puis ajouter des lignes spécifiant les tâches à exécuter et leur fréquence.

Par exemple, pour exécuter une tâche toutes les heures, on ajoute la ligne suivante à la table de cron :

0 * * * * commande_a_executer

Cela signifie que la commande spécifiée sera exécutée à la première minute de chaque heure. La flexibilité de cron permet de définir des tâches récurrentes selon des schémas variés, allant de la minute à l’année.

Le contrôle des travaux offre également la possibilité de suspendre temporairement un processus en cours d’exécution, le restaurant ensuite à un état actif. Cette fonctionnalité est particulièrement utile dans des scénarios où l’on souhaite donner la priorité à certains processus tout en mettant en pause d’autres tâches moins urgentes. La commande kill -STOP permet de mettre en pause un travail, tandis que kill -CONT reprend son exécution.

Il est essentiel de noter que le contrôle des travaux s’étend également à la gestion des signaux. Les signaux sont des messages logiciels qui peuvent être envoyés à des processus pour déclencher certaines actions. Lorsque l’on utilise des commandes telles que kill, on envoie en réalité un signal au processus cible. Le signal par défaut est SIGTERM, qui demande au processus de se terminer proprement. Cependant, on peut spécifier d’autres signaux, tels que SIGKILL (9), qui force la terminaison immédiate du processus sans possibilité de nettoyage.

En conclusion, le contrôle des travaux dans l’environnement Bash de Linux offre une panoplie d’outils puissants pour gérer efficacement les processus en arrière-plan et en premier plan. Des commandes telles que bg, fg, jobs, kill, et disown fournissent aux utilisateurs un contrôle fin sur l’exécution des tâches, tandis que la capacité de rediriger la sortie, de suspendre et de reprendre des travaux, ainsi que la planification de tâches périodiques, ajoutent une dimension supplémentaire à la flexibilité offerte par cet outil. En comprenant ces concepts et en les intégrant dans leur utilisation quotidienne du terminal, les utilisateurs Linux peuvent optimiser leur productivité et leur efficacité dans la gestion des tâches système et des scripts complexes.

Bouton retour en haut de la page