Linux est un système d'exploitation génial et avancé, mais il n'est pas parfait. De temps en temps, certaines applications peuvent commencer à se comporter de manière erratique et ne plus répondre ou commencer à consommer beaucoup de ressources système. Les applications qui ne répondent pas ne peuvent pas être redémarrées car le processus d'application d'origine ne s'arrête jamais complètement. La seule solution est de redémarrer le système ou de tuer le processus d'application.
Il existe plusieurs utilitaires qui vous permettent de terminer les processus errants avec kill
étant le plus couramment utilisé.
kill
Commande #
kill
est un shell intégré dans la plupart des shells dérivés de Bourne tels que Bash et Zsh. Le comportement de la commande est légèrement différent entre les shells et le standalone /bin/kill
exécutable.
Utilisez le type
commande pour afficher tous les emplacements de votre système contenant kill
:
type -a kill
kill is a shell builtin
kill is /bin/kill
La sortie ci-dessus indique que le shell intégré a la priorité sur l'exécutable autonome et qu'il est utilisé chaque fois que vous tapez kill
. Si vous souhaitez utiliser le binaire, tapez le chemin complet du fichier /bin/kill
. Dans cet article, nous utiliserons la fonction intégrée Bash.
La syntaxe du kill
commande prend la forme suivante :
kill [OPTIONS] [PID]...
Le kill
La commande envoie un signal aux processus ou groupes de processus spécifiés, les obligeant à agir en fonction du signal. Lorsque le signal n'est pas spécifié, sa valeur par défaut est -15
(-TERME).
Les signaux les plus couramment utilisés sont :
1
(HUP
) - Recharger un processus.9
(KILL
) - Arrêter un processus.15
(TERM
) - Arrêtez un processus avec grâce.
Pour obtenir une liste de tous les signaux disponibles, invoquez la commande avec le -l
choix :
kill -l
Les signaux peuvent être spécifiés de trois manières différentes :
- Utiliser un nombre (par exemple,
-1
ou-s 1
). - Utiliser le préfixe "SIG" (par exemple,
-SIGHUP
ou-s SIGHUP
). - Sans le préfixe "SIG" (par exemple,
-HUP
ou-s HUP
).
Les commandes suivantes sont équivalentes :
kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -HUP PID_NUMBER
Les PID fournis au kill
la commande peut être l'une des suivantes :
- Si
PID
est supérieur à zéro, le signal est envoyé au processus avec ID égal auPID
. - Si
PID
est égal à zéro, le signal est envoyé à tous les processus du groupe de processus en cours. En d'autres termes, le signal est envoyé à tous les processus appartenant au GID du shell qui a invoqué lekill
commande. Utilisezps -efj
commande pour afficher les ID de groupe de processus (GID). - Si
PID
est égal à-1
, le signal est envoyé à tous les processus avec le même UID que l'utilisateur appelant la commande. Si l'utilisateur appelant est root, le signal est envoyé à tous les processus sauf init etkill
processus lui-même. - Si
PID
est inférieur à-1
, le signal est envoyé à tous les processus du groupe de processus eq avec GID égal à la valeur absolue duPID
.
Les utilisateurs réguliers peuvent envoyer des signaux à leurs propres processus, mais pas ceux qui appartiennent à d'autres utilisateurs, tandis que l'utilisateur root peut envoyer des signaux aux processus d'autres utilisateurs.
Terminer les processus à l'aide de kill
Commande #
Pour terminer ou tuer un processus avec le kill
commande, vous devez d'abord trouver le numéro d'identification du processus (PID). 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 arrêter le processus Firefox. Pour trouver les PID du navigateur, utilisez le pidof
commande :
pidof firefox
La commande imprimera les identifiants de tous les processus Firefox :
6263 6199 6142 6076
Une fois que vous connaissez les numéros de processus, vous pouvez tous les tuer en envoyant le TERM
signaler :
kill -9 6263 6199 6142 6076
Au lieu de rechercher des PID puis de tuer les processus, vous pouvez combiner les commandes ci-dessus en une seule :
kill -9 $(pidof firefox)
Rechargement des processus à l'aide de kill
Commande #
Un autre cas d'utilisation courant pour kill
est d'envoyer le HUP
signal, qui indique aux processus de recharger ses paramètres.
Par exemple, pour recharger Nginx, vous devez envoyer un signal au processus maître. L'ID de processus du processus maître Nginx se trouve dans le nginx.pid
fichier, qui est généralement situé dans le /var/run
répertoire.
Utilisez le cat
commande pour trouver le PID maître :
cat /var/run/nginx.pid
30251
Une fois que vous avez trouvé le PID maître, rechargez les paramètres Nginx en tapant :
sudo kill -1 30251
La commande ci-dessus doit être exécutée en tant que root ou utilisateur avec sudoprivileges.
Conclusion #
Le kill
La commande est utilisée pour envoyer un signal aux processus. Le signal le plus fréquemment utilisé est SIGKILL
ou -9
, qui termine les processus donnés.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.