Sous Linux, une instance d'un service, d'une application ou d'un script en cours d'exécution est appelée un processus. Lorsque vous exécutez une commande, un programme ou une application, un processus est créé pour celui-ci. Chaque processus a son propre ID de processus qui est associé à un utilisateur et à un groupe spécifiques. Si des processus consomment trop de ressources ou ne répondent plus, vous devrez peut-être les tuer. Dans ce cas, vous pouvez utiliser la commande kill pour arrêter le processus sans redémarrer votre serveur.
Dans cet article, nous vous montrerons comment tuer les processus en cours d'exécution sous Linux.
Prérequis
- Un serveur exécutant Linux sur la plate-forme cloud Atlantic.Net
- Un mot de passe root configuré sur votre serveur
Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant n'importe quel système d'exploitation Linux avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Afficher les processus en cours d'exécution sous Linux
Le moyen le plus simple et le plus simple d'obtenir une liste de tous les processus en cours d'exécution consiste à utiliser la commande top. Vous pouvez exécuter la commande top comme indiqué ci-dessous pour répertorier tous les processus en cours d'exécution :
top
Vous obtiendrez tous les processus en cours d'exécution dans la sortie suivante :
Tasks: 344 total, 1 running, 297 sleeping, 0 stopped, 0 zombie %Cpu(s): 22.6 us, 6.0 sy, 0.1 ni, 67.1 id, 3.9 wa, 0.0 hi, 0.4 si, 0.0 st KiB Mem : 7580260 total, 2103076 free, 3174408 used, 2302776 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 3901388 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5994 vyom 20 0 44344 4160 3444 R 11.8 0.1 0:00.03 top 2206 vyom 20 0 1046476 89792 60368 S 5.9 1.2 1:15.26 Xorg 2359 vyom 20 0 3471324 216412 97596 S 5.9 2.9 1:58.27 gnome-shell 2745 vyom 20 0 1776552 136144 99424 S 5.9 1.8 1:09.93 skypeforlinux 2775 vyom 20 0 37.371g 169524 117660 S 5.9 2.2 1:05.09 skypeforlinux 5655 root 20 0 0 0 0 I 5.9 0.0 0:00.30 kworker/u8:3-ev 1 root 20 0 160356 9464 6632 S 0.0 0.1 0:03.50 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kb 9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 10 root 20 0 0 0 0 S 0.0 0.0 0:00.40 ksoftirqd/0 11 root 20 0 0 0 0 I 0.0 0.0 0:03.58 rcu_sched 12 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0 13 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/0 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1 16 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/1
Vous pouvez appuyer sur k et entrer l'ID de processus pour tuer le processus directement depuis l'interface supérieure.
Trouvez le processus à l'aide de la commande ps
ps est un utilitaire de ligne de commande qui affiche une liste complète des processus en cours d'exécution dans le format spécifié.
La syntaxe de base de la commande ps est illustrée ci-dessous :
ps [OPTION]
Une brève explication de chaque option est présentée ci-dessous :
- -a – Afficher les processus en cours d'exécution de tous les utilisateurs.
- -u – Affiche des informations détaillées sur chacun des processus.
- -x – Affiche les processus contrôlés par le démon.
Par exemple, exécutez la commande suivante pour obtenir une liste détaillée de tous les processus.
ps aux
Vous obtiendrez le résultat suivant :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.1 160356 9464 ? Ss 15:51 0:03 /sbin/init splash root 2 0.0 0.0 0 0 ? S 15:51 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< 15:51 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 15:51 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< 15:51 0:00 [kworker/0:0H-kb] root 9 0.0 0.0 0 0 ? I< 15:51 0:00 [mm_percpu_wq] root 10 0.0 0.0 0 0 ? S 15:51 0:00 [ksoftirqd/0] root 11 0.1 0.0 0 0 ? I 15:51 0:03 [rcu_sched] root 12 0.0 0.0 0 0 ? S 15:51 0:00 [migration/0] root 13 0.0 0.0 0 0 ? S 15:51 0:00 [idle_inject/0] root 14 0.0 0.0 0 0 ? S 15:51 0:00 [cpuhp/0] root 15 0.0 0.0 0 0 ? S 15:51 0:00 [cpuhp/1] root 16 0.0 0.0 0 0 ? S 15:51 0:00 [idle_inject/1] root 17 0.0 0.0 0 0 ? S 15:51 0:00 [migration/1] root 18 0.0 0.0 0 0 ? S 15:51 0:00 [ksoftirqd/1] root 20 0.0 0.0 0 0 ? I< 15:51 0:00 [kworker/1:0H-kb] root 21 0.0 0.0 0 0 ? S 15:51 0:00 [kdevtmpfs] root 22 0.0 0.0 0 0 ? I< 15:51 0:00 [netns]
La commande ci-dessus vous montrera tous les processus en cours d'exécution. Vous pouvez utiliser la commande grep avec la commande ps pour obtenir un PID d'un processus spécifique.
Par exemple, pour obtenir un PID d'un processus Apache, exécutez la commande suivante :
ps aux | grep apache
Vous obtiendrez le résultat suivant :
root 1309 0.0 0.0 73992 4748 ? Ss 15:52 0:00 /usr/sbin/apache2 -k start www-data 1310 0.0 0.0 1285068 4620 ? Sl 15:52 0:00 /usr/sbin/apache2 -k start www-data 1311 0.0 0.0 1285068 4644 ? Sl 15:52 0:00 /usr/sbin/apache2 -k start
Vous pouvez également utiliser le pidof commande pour obtenir un PID d'un processus spécifique.
pidof apache2
Vous obtiendrez le résultat suivant :
1311 1310 1309
Tuer un processus sous Linux
À ce stade, vous savez comment obtenir le PID de n'importe quel processus. Maintenant, vous pouvez utiliser la commande kill pour tuer un processus en cours d'exécution.
Pour tuer un seul processus, exécutez la commande suivante :
kill PID
Ou
kill -9 PID
Pour tuer plusieurs processus, exécutez la commande suivante :
kill -9 PID1 PID2 PID3
Vous pouvez également tuer les processus par leurs noms. Vous pouvez utiliser le pkill commande pour tuer un processus par son nom.
Pour tuer le processus Apache, exécutez la commande suivante :
pkill apache2
Vous pouvez également utiliser le killall commande pour tuer un processus par son nom :
killall mysqld
Conclusion
Dans cet article, nous avons expliqué comment rechercher et tuer un processus sous Linux. Vous pouvez maintenant tuer vous-même tous les processus qui ne répondent pas sans redémarrer votre serveur. Essayez-le sur l'hébergement VPS d'Atlantic.Net !