Comment tuer le processus par nom sous Linux

Forcer la fermeture des processus qui se comportent mal à l'aide de ces commandes Linux

Pour expliquer la signification d'un « processus » dans les mots les plus simples, il s'agit d'une instance en cours d'exécution de toute application ou programme sur votre système. Vous pouvez exécuter plusieurs applications simultanément telles que la navigation, l'écoute de musique sur votre terminal, etc. Il existe de nombreux processus d'arrière-plan associés à ces applications qui sont exécutés par l'utilisateur.

Chaque application ou programme qui s'exécute sur votre système crée plusieurs processus associés à votre application unique. Parfois, cela peut être un problème et se débarrasser de ces processus est la seule option dont vous disposez.

« Tuer » un processus est une option utile que Linux vous offre pour arrêter les processus en cours, qu'il s'agisse d'un processus de premier plan ou d'un processus d'arrière-plan. Dans cet article, nous passerons en revue les commandes telles que tuer, tuer et tuer tous pour forcer la fermeture de n'importe quel processus sur un système.

Pourquoi tuer un processus ?

Il est important de comprendre le concept d'arrêt d'un processus avant d'aller de l'avant dans ce didacticiel. Tuer peut sembler une manière très brutale d'exprimer le concept, mais ce que cela signifie au sens figuré, c'est d'abandonner de force un processus.

Maintenant, pourquoi abandonner ou quitter un processus en cours ? Lorsque plusieurs processus s'exécutent en arrière-plan, tous ou peu d'entre eux peuvent mal fonctionner et entraîner un dysfonctionnement de votre système. Cela retarde vos tâches en cours car le processus défectueux peut geler votre système pendant un certain temps.

Parfois, quitter tous les processus qui se comportent mal semble être la seule option pour restaurer la normalité de votre système. Linux vous permet de tuer un processus en utilisant le pid ou le nom du processus.

En utilisant le pgrep commander

La plupart des utilisateurs de Linux connaissent le grep commander. le pgrep peut être utilisé sur des lignes similaires du grep.

pgrep commande lorsqu'elle est utilisée, affiche la pid du processus en cours comme spécifié dans la commande. Cette commande s'avérera très utile lors de l'utilisation du tuer commander.

Syntaxe générale :

pgrep [options] [motif]

Options importantes disponibles avec le pgrep commander

OptionLa description
-uid de processus de liste appartenant à un utilisateur spécifique
-ccompter le nombre de processus correspondants
-JElister uniquement les noms de processus
-uneliste le chemin complet du nom du processus

Démontrons l'utilisation de pgrep commande en utilisant un exemple.

pgrep -u gaurav gnome

Ici, nous souhaitons voir le pids du processus gnome qui appartient à l'utilisateur « gaurav ». Option -u permet de lister les pids des processus appartenant à un utilisateur spécifique. Dans ce cas, l'utilisateur gaurav.

Sortir:

gaurav@ubuntu:~$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$

Au fur et à mesure que nous avançons dans ce tutoriel, pgrep La commande nous aidera à confirmer si le processus a été tué ou est toujours en cours d'exécution.

Passons maintenant au tuer commande et son exécution.

Utilisant tuer commander

Vous pouvez utiliser le tuer commande sous Linux pour tuer le processus en utilisant le nom du processus. Même si vous ne connaissez pas le pid d'un processus, même dans ce cas, vous pouvez tuer ce processus particulier en utilisant le tuer commander.

Les processus peuvent être spécifiés avec leur nom complet ou le nom partiel en utilisant le tuer commander. Même si vous entrez le nom partiel du processus, le tuer La commande fera correspondre tous les processus en cours avec le nom correspondant que vous avez entré dans la commande.

Syntaxe:

pkill [options][process_name_pattern] 

Exemple:

Présentons les processus en cours d'exécution à l'aide de la Haut commander. Vous pouvez également utiliser le ps commande pour lister les processus.

Haut
top - 14:24:02 jusqu'à 3:12, 1 utilisateur, charge moyenne : 0,29, 0,48, 0,58 Tâches : 221 au total, 1 en cours d'exécution, 172 en sommeil, 0 arrêté, 1 zombie %Cpu(s) : 5,6 us, 1,0 sy , 0.0 ni, 92.9 id, 0.4 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 3928240 total, 610456 free, 2233152 used, 1084632 buff/cache KiB Swap : 4083708 total, 3378884 free, 704824 used. 1187268 dispo Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4077 gaurav 20 0 3312128 673480 118360 S 19.6 17.1 15:13.23 Web Content 3712 gaurav 20 0 3953008 453544 116476 S 4.0 11.5 9:28.39 MainThread 2010 gaurav 20 0 4084232 111096 45024 S 1.7 2.8 3:14.85 gnome-shell 1197 root 20 0 1039612 33704 22988 S 1.0 0.9 3:04.42 Xorg 1426 couchdb 20 0 3772396 16908 2520 S 0.7 0.4 1:50.83 beam.smp 3288 gaurav 20 0 722480 25048 18272 S 0,7 0,6 0:06.84 gnome-terminal- 3915 gaurav 20 0 2804900 231524 111228 S 0,7 5,9 0:54,42 Contenu Web 4146 gaurav 20 0 3017924 245304 120604 S 0,7 6,2 2:01.21 Contenu Web 4417 gaurav 20 0 2964208 234396 119160 S 0,7 6,0 0 :59.90 Contenu Web 4860 gaurav 20 0 3066800 372920 132544 S 0.7 9.5 0:48.20 Contenu Web 16007 gaurav 20 0 41944 3780 3116 R 0.7 0.1 0:00.28 haut 

Utilisant Haut La commande affichera plusieurs processus sur votre terminal. Essayons d'afficher le processus avec un nom particulier. Nous utiliserons le grep commande pour afficher un processus dont le nom correspond à la chaîne 'mongo'.

haut | grep -i mongo

Noter: Ici, j'ai utilisé l'option -i pour rendre la recherche insensible à la casse.

La sortie de cette commande affichera les processus correspondant au nom 'mongo'

 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.22 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.25 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.27 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.29 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.31 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.33 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.36 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1:03,38 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1:03,40 mongod 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1:03,43 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1:03.45 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.48 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.3 0.1 1:03.49 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.52 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1:03,54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1:03,57 mongod

Maintenant, nous allons utiliser le tuer commande pour tuer le processus nommé 'mongo'.

pkill mongo

Cette commande va maintenant tuer le processus mongo. Nous pouvons confirmer si le processus a été forcé à s'arrêter en utilisant le pgrep commande qui affiche le pid du processus en cours selon les critères spécifiés par l'utilisateur.

gaurav@ubuntu:~$ pgrep mongo gaurav@ubuntu:~$

Cette commande ne retournera aucune valeur. Cela confirme que le processus « mongo » est maintenant tué en utilisant le tuer commander.

Options fréquemment utilisées avec tuer commander

Lors de l'utilisation du tuer commande, nous aurons besoin des options mentionnées pour une utilisation correcte et sans effort du tuer commander.

OptionsLa description
-Fcorrespondance avec les arguments complets, y compris les espaces, les guillemets, les caractères spéciaux
-upour informer le processus pkill pour qu'il corresponde au processus en cours d'exécution par l'utilisateur spécifié
-1recharge le processus
-9tue le processus
-15abandonne gracieusement un processus

Voyons un autre exemple de tuer commande à l'aide du -F option.

Deux commandes s'exécutent actuellement sur le terminal, comme indiqué ci-dessous.

ping bbc.com ping youtube.com

Les deux processus sont initiés par le ping commander. Maintenant, supposons que nous souhaitions mettre fin à un seul processus « ping youtube.com », alors nous devons utiliser le -F option avec le tuer commande qui tue un processus avec un nom spécifique comprenant les espaces et les guillemets du nom du processus.

Commander:

gaurav@ubuntu:~$ pkill -f "ping youtube.com" gaurav@ubuntu:~$ 

Résultat:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56 (84) octets de données. 64 octets de bom12s08-in-f14.1e100.net (142.250.67.206) : icmp_seq=1 ttl=117 temps=30.9 ms 64 octets de bom12s08-in-f14.1e100.net (142.250.67.206) : icmp_seq=2 ttl =117 temps=121 ms 64 octets de bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=206 ttl=117 temps=86,5 ms 64 octets de bom12s08-in-f14.1e100.net (142.250.67.206 ): icmp_seq=207 ttl=117 time=105 ms Terminé gaurav@ubuntu:~$ 

Ici le "ping youtube.com" Le processus est maintenant tué et le "ping bbc.com” est toujours en cours d'exécution sur le terminal.

Au cas où, si nous avions utilisé le pkill ping commande, cela aurait tué à la fois le ping processus, ce qui n'est pas souhaitable.

Signaux utilisés avec tuer commander

tuer force un processus à s'arrêter en envoyant un signal spécifique à ce processus. Il y a trois signaux possibles qui tuer La commande pourrait envoyer au processus en fonction de la commande que l'utilisateur donne.

Voici la liste des signaux disponibles.

Signalspécification
1(HUP)recharge le processus spécifié
9 (TUER)tue le processus spécifié
15 (TERME)arrête ou interrompt doucement le processus spécifié

Pour ce tutoriel, nous nous appuierons fortement sur le TUER signal. Passons en revue quelques exemples pour mieux le comprendre.

En utilisant le pgrep commande pour obtenir le pid correspondant au nom apache.

gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill -Kill apache

OU vous pouvez également utiliser la commande avec des nombres (par exemple, 1, 9, 15)

pkill -9 apache

Les deux commandes ci-dessus tueront le processus Apache. Confirmation avec le pgrep commande à nouveau.

gaurav@ubuntu:~$ pgrep apache gaurav@ubuntu:~$

Comme le pgrep La commande ne renvoie aucune sortie, prouve que le processus Apache a été tué.

Conclusion

Dans ce tutoriel, nous avons découvert le tuer commande et comment elle est utilisée pour tuer le processus en utilisant directement le nom du processus. Nous avons également appris la pgrep commande qui est utilisée pour récupérer l'ID de processus du processus exécuté par un utilisateur spécifique. le pgrep La commande nous permet de vérifier si le processus est tué.