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
Option | La description |
-u | id de processus de liste appartenant à un utilisateur spécifique |
-c | compter le nombre de processus correspondants |
-JE | lister uniquement les noms de processus |
-une | liste 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.
Options | La description |
-F | correspondance avec les arguments complets, y compris les espaces, les guillemets, les caractères spéciaux |
-u | pour informer le processus pkill pour qu'il corresponde au processus en cours d'exécution par l'utilisateur spécifié |
-1 | recharge le processus |
-9 | tue le processus |
-15 | abandonne 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.
Signal | spé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é.