Android

Comment tuer un processus sous Linux

Commandes de base Linux - Ep45 - Gestion des processus commande kill - partie 5

Commandes de base Linux - Ep45 - Gestion des processus commande kill - partie 5

Table des matières:

Anonim

Avez-vous déjà été confronté à la situation où vous avez lancé une application et, soudainement, lorsque vous utilisez l'application, elle ne répond plus et se bloque de manière inattendue? Vous essayez de redémarrer l'application, mais rien ne se produit car le processus d'application d'origine ne s'arrête jamais vraiment complètement.

Eh bien, c'est arrivé à nous tous à un moment donné, n'est-ce pas? La solution consiste à terminer ou à tuer le processus de demande. Mais comment?

Heureusement, il existe plusieurs utilitaires sous Linux qui vous permettent de tuer les processus errants., nous allons vous montrer comment utiliser les commandes kill , killall et pkill pour terminer un processus sous Linux.

La principale différence entre ces outils est que kill met fin aux processus en fonction du numéro d'identification du processus (PID), tandis que les commandes killall et pkill mettent fin aux processus en cours en fonction de leurs noms et autres attributs.

Les utilisateurs réguliers peuvent tuer leurs propres processus, mais pas ceux qui appartiennent à d'autres utilisateurs, tandis que l'utilisateur root peut tuer tous les processus.

Signaux d'arrêt du système

kill , killall et pkill envoient un signal donné aux processus ou groupes de processus spécifiés. Lorsqu'aucun signal n'est spécifié, chaque outil envoie 15 ( TERM ).

Les signaux les plus couramment utilisés sont:

  • 1 (-HUP): pour recharger un processus. 9 (-KILL): pour tuer un processus. 15 (-TERM): pour arrêter gracieusement un processus.

Les signaux peuvent être spécifiés de trois manières différentes:

  • en utilisant un nombre (par exemple, -1) avec le préfixe «SIG» (par exemple, -SIGHUP) sans le préfixe «SIG» (par exemple, -HUP).

Utilisez l'option -l pour répertorier tous les signaux disponibles:

kill -l # or killall -l

Les étapes décrites ci-dessous fonctionneront sur toutes les distributions Linux.

Arrêt des processus à l'aide de la commande kill

Pour terminer un processus avec la commande kill , vous devez d'abord trouver le PID du processus. Vous pouvez le faire en utilisant différentes commandes telles que top , ps , pidof et pgrep .

Disons que le navigateur Firefox ne répond plus et que vous devez tuer le processus Firefox. Pour trouver l'ID de processus, utilisez la commande pidof :

pidof firefox

La commande imprimera tous les processus Firefox:

2551 2514 1963 1856 1771

Une fois que vous savez que Firefox traite les PID pour les terminer, envoyez tous le signal TERM :

kill -9 2551 2514 1963 1856 1771

Arrêt des processus à l'aide de la commande killall

La commande killall met fin à tous les programmes qui correspondent à un nom spécifié.

En utilisant le même scénario que précédemment, vous pouvez tuer le processus Firefox en tapant:

killall -9 firefox

killall accepte plusieurs options telles que l'envoi de signaux aux processus appartenant à un utilisateur donné, la correspondance des noms de processus avec les expressions régulières et l'heure de création. Vous pouvez obtenir une liste de toutes les options en tapant killall (sans aucun argument) sur votre terminal.

Par exemple, pour mettre fin à tous les processus exécutés en tant qu'utilisateur «sara», vous devez exécuter la commande suivante:

sudo killall -u sara

Arrêt des processus à l'aide de la commande pkill

pkill termine les processus qui correspondent au modèle donné sur la ligne de commande:

pkill -9 firefox

Le nom du processus ne doit pas nécessairement être une correspondance exacte.

Avec pkill vous pouvez également envoyer un signal aux processus appartenant à un utilisateur donné. Pour ne tuer que les processus firefox appartenant à l'utilisateur "sara", vous devez taper:

pkill -9 -u sara firefox

Conclusion

Mettre fin aux programmes qui ne répondent pas à l'aide des commandes kill , killall et pkill est une tâche facile. Il vous suffit de connaître le nom du processus ou PID.

tuer le terminal