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,
-1ou-s 1). - Utiliser le préfixe "SIG" (par exemple,
-SIGHUPou-s SIGHUP). - Sans le préfixe "SIG" (par exemple,
-HUPou-s HUP).
Les commandes suivantes sont équivalentes :
kill -1 PID_NUMBERkill -SIGHUP PID_NUMBERkill -HUP PID_NUMBER
Les PID fournis au kill la commande peut être l'une des suivantes :
- Si
PIDest supérieur à zéro, le signal est envoyé au processus avec ID égal auPID. - Si
PIDest é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é lekillcommande. Utilisezps -efjcommande pour afficher les ID de groupe de processus (GID). - Si
PIDest é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 etkillprocessus lui-même. - Si
PIDest 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.