Tuer tous les travaux arrêtés Linux

Kill All Stopped Jobs Linux



Sous Linux, un travail fait référence à un processus démarré et géré par le shell. Cela peut être une commande unique, une commande shell longue et complexe comprenant des tuyaux et des redirections, un exécutable ou un script. Chaque tâche sous Linux est gérée en attribuant une IP de tâche séquentielle associée à un processus spécifique.

Un concept clé à comprendre à propos des emplois Linux est leur statut. Il existe deux statuts principaux pour les tâches Linux :







  • Premier plan
  • Fond

Emplois au premier plan

Un travail de premier plan fait référence à une commande ou à un programme exécuté dans le shell et occupe la session de terminal jusqu'à ce qu'il se termine. Un exemple serait de lancer un gestionnaire de fichiers ou un navigateur dans le terminal



Par exemple, la capture d'écran suivante montre une fenêtre de terminal avec une tâche au premier plan.







Dans l'image ci-dessus, l'invite du shell n'est pas disponible jusqu'à la fermeture de la fenêtre Firefox.

Tâches d'arrière-plan

L'opposé du premier plan est le travail d'arrière-plan. Pour lancer une tâche dans le shell en tant que tâche d'arrière-plan, nous utilisons le symbole esperluette (&). L'utilisation de ceci indique au shell de mettre toutes les commandes précédant l'esperluette en arrière-plan et d'afficher immédiatement l'invite du shell.



L'exemple ci-dessous montre comment mettre le travail Firefox (dans l'exemple ci-dessus) en arrière-plan.

Comme vous pouvez le voir, l'invite du shell est désormais disponible bien que Firefox soit toujours en cours d'exécution.

Vous remarquerez des valeurs numériques affichées pour les tâches d'arrière-plan. La première, indiquée par des crochets ([]), affiche l'ID de la tâche, tandis que l'autre valeur indique le PID du processus associé à la tâche.

Comment gérer les tâches en arrière-plan

La commande jobs gère le contrôle des tâches. Cela vous permet de visualiser les travaux en arrière-plan.

sudo travaux

L'exécution de la commande ci-dessus affiche les tâches en arrière-plan comme indiqué ci-dessous :

En commençant sur le côté gauche, nous avons le Job ID.

Le signe plus (+) ou moins (-) suit immédiatement après les crochets. Le signe plus indique qu'il s'agit du travail en cours, tandis que le nombre moins indique le travail suivant.

La parenthèse suivante montre l'état du travail. Cela peut être en cours d'exécution, arrêté, terminé, terminé ou terminé avec un code d'état.

Enfin, la dernière partie affiche le nom réel du travail.

Afficher les tâches avec PID

Pour afficher les tâches en arrière-plan avec leurs valeurs PID correspondantes, nous utilisons l'indicateur -l comme :

travaux -l

Cela affichera les tâches d'arrière-plan avec leurs valeurs PID, comme indiqué dans l'image ci-dessous.

Tâches en arrière-plan avec sortie

Supposons que nous ayons un travail que nous voulons exécuter en arrière-plan et qui affiche une sortie à l'écran. Par exemple, dans l'exemple ci-dessus, j'ai mis la commande apt, qui a beaucoup de sorties en arrière-plan, sans gâcher mon terminal.

Pour ce faire, vous pouvez rediriger la sortie dans /dev/null comme :

sudo apt-get mise à jour > /développeur/nul&

Comment mettre le travail d'arrière-plan au premier plan

Nous pouvons mettre les tâches en arrière-plan au premier plan en utilisant la commande fg. Par exemple, pour mettre le job firefox avec le Job ID de 1 en arrière-plan, nous pouvons faire :

fg %1

Cela mettra le travail au premier plan en tant que:

[email protégé] :~$fg %1

firefox

Options de commande des tâches

La commande jobs n'a pas beaucoup d'options.

Nous avons déjà discuté du -l pour afficher les travaux avec leurs identifiants de processus.

Les autres options que vous pouvez transmettre à la commande job incluent :

  • -n – Cela montre les travaux qui ont changé de statut depuis la dernière notification. Par exemple, un travail qui est passé d'un état en cours d'exécution à un état arrêté.
  • -p – Répertorie uniquement les PID des travaux.
  • -r –en cours d'exécution uniquement
  • -s – Affiche uniquement les travaux arrêtés.

Comment mettre fin ou supprimer des emplois

Nous pouvons mettre fin aux travaux à l'aide de la commande kill suivie de l'ID du travail, d'une sous-chaîne ou de l'ID du processus.

Tuer à l'aide de l'identifiant de tâche

Pour tuer une tâche avec l'ID de tâche, nous utilisons le % suivi de la valeur de l'ID comme :

tuer %%

Cela tuera le travail en cours ; c'est similaire à %+.

Tuer un Job avec une sous-chaîne

Tuer un travail avec une sous-chaîne, préfixer la sous-chaîne avec % ? suivi de la valeur de la sous-chaîne :

tuer %?gnome-calculateur

REMARQUE : Linux exécute les tâches simultanément. Cela signifie qu'il saute entre les tâches disponibles jusqu'à ce qu'elles soient terminées. Par conséquent, la fin d'une session de terminal avec des tâches en cours d'exécution mettra fin à toutes vos tâches.

Vous n'avez pas à vous en soucier si vous utilisez un multiplexeur de terminal comme tmux ou screen, car vous pouvez les rattacher.

Comment tuer les travaux interrompus

Pour que nous puissions tuer tous les travaux arrêtés, nous devons lier deux commandes ensemble. Le premier obtiendra les PID de tous les travaux arrêtés, et le suivant tuera tous les travaux fournis.

Pour visualiser les jobs arrêtés, on utilise la commande

travaux -s

Cette commande affiche tous les travaux arrêtés.

Ayant cela, nous pouvons obtenir les PID des travaux arrêtés et les diriger vers la commande kill comme :

sudo tuer -9 ``travaux -p-s``

Cela tuera tous les travaux arrêtés.

Conclusion

Ce tutoriel a passé en revue les concepts de contrôle des tâches sous Linux et comment obtenir des informations sur les tâches. Il est bon de noter que le contrôle des tâches peut ne pas être disponible en fonction du shell de votre choix.

Merci d'avoir lu & Happy Shells.