Terminaison Du Processus Sous Linux

Aujourd’hui, nous allons discuter des processus Linux. Toute instance de programme s’exécutant sur Linux est un processus. Par exemple, si vous utilisez Firefox pour lire cet article, vous pouvez le voir dans votre terminal Linux en tapant le « ps ax | commande grep firefox ». J’ai fourni une capture d’écran d’Ubuntu ici, afin que vous puissiez voir comment la sortie s’affiche dans la vie réelle. 

Comme vous pouvez le voir, Firefox s’exécute sur mon instance Ubuntu. Maintenant, si nous devons fermer cette instance, nous utiliserons l’arrêt du processus. Il s’agit d’un niveau avancé de Linux, je vous recommande donc d’apprendre d’abord les bases de Linux.

Processus Sous Linux

Tout d’abord, nous devons comprendre que tout programme ou application que vous exécutez sur votre système d’exploitation est appelé un processus. La gestion des processus est une chose simple, et dans l’article d’aujourd’hui, nous allons en apprendre davantage sur la terminaison des processus.

Si vous souhaitez vérifier le processus en cours dans votre application, vous pouvez simplement donner une commande « ps ».

€ par heure
 PID TTY HEURE CMD
 3648 points/0 0
 1493 points/0 0
 1300 points/0 0

Nous avons différentes manières de terminer le processus. Dans cet article, nous allons discuter de la gestion des processus de base et de certains concepts avancés tels que SIGTERM (signal 15), SIGINT et d’autres commandes. Commençons notre article.

Nous avons déjà différents processus en cours d’exécution sur nos systèmes. Ainsi, la question est alors : qu’est-ce que l’arrêt du processus ? 

C’est une opération dans la plupart des systèmes d’exploitation, principalement dans les systèmes d’exploitation de type UNIX comme Linux. L’arrêt du processus, comme son nom l’indique, se produit lorsque le processus est terminé : exit() est utilisé par la plupart des systèmes d’exploitation de type UNIX. Alors, pourquoi un processus est-il terminé ? Cela peut arriver pour de nombreuses raisons. Par exemple, un processus est terminé s’il se termine et quitte le processeur. Lorsque le processus quitte le processeur, il libère tous ses processus. 

Parfois, le processus parent peut émettre la commande pour terminer son processus enfant. L’échec et le manque de mémoire sont également des raisons courantes d’arrêt du processus. 

1. Tuer Un Processus Par PID

Nous pouvons tuer manuellement un processus en utilisant PID. PID est l’ID du processus. Si un processus est bloqué ou bloqué et que vous devez le tuer, vous pouvez le faire, mais vous devez connaître l’ID ou le PID du processus. Si vous remarquez, dans une commande « ps », nous avons une colonne avec des PID. Pour tuer un processus, vous devez émettre le signal SIGTERM. Pour cela, dans le système d’exploitation Linux, nous devons « tuer » avec la syntaxe suivante. 

€ tuer le PID

Si vous avez affaire à un processus bloqué/bloqué, vous pouvez également utiliser -9 :

€ sudo kill -9 3212
  Sommeil tué 500

SIGTERM Le signal est un signal. Dans le système d’exploitation Linux, un signal est une méthode de communication dans différents processus. Les gestionnaires de signaux interrompent le processus et s’exécutent. Il n’est pas nécessaire que chaque signal soit destiné à la fin du processus. Cela dépend du signal et de la façon dont le programme va se comporter. Si un processus reçoit un signal, il peut continuer son exécution normale ou non. 

Si nous parlons de SIGTERM et SIGQUIT, ces deux signaux sont destinés à terminer les processus à la demande de l’utilisateur. La commande kill que nous venons d’utiliser pour tuer le processus a SIGTERM Signal par défaut. Vous pouvez visiter la documentation officielle du site Web de Linux sur les différents signaux. Il existe également des fils de discussion sur les signaux qui peuvent vous aider à mieux comprendre. 

Processus Zombie

Halloween est fini ! Alors pourquoi parlons-nous de zombies ? Que sont les processus zombies ? 

Simple : si une tâche de processus est terminée, mais qu’elle reste toujours dans la table de processus, elle est appelée processus zombie. Les processus zombies sont des processus enfants et leurs processus parents doivent lire l’état exit() de l’enfant. Mais les parents peuvent être ignorés ou bloqués pour une raison quelconque et ne pas être en mesure d’écouter le processus zombie. 

Ici, nous arrivons à notre point suivant : traiter de tels processus. Ces processus continuent d’exister jusqu’à ce que le processus parent meure de l’arrêt du système. Une illustration du cycle de vie des processus zombies est donnée ci-dessous.

Lorsque nous appelons l’appel système exit(), toute la mémoire et les ressources sont désallouées, mais le processus est toujours disponible dans la liste des zombies. L’appel système wait() est utilisé pour lire l’état de sortie du processus zombie. Si un parent n’appelle pas, l’appel système wait() sera le résultat d’une fuite de ressources. Un autre scénario est si le processus parent n’est plus dans la table de processus. Dans de tels cas, la disponibilité du processus zombie est appelée bogue système. Si vous souhaitez tuer les processus zombies, utilisez la commande suivante. 

€ -s SIGCHLD PID

Lors de l’utilisation de cette commande, veillez à ce que le PID soit l’ID du processus parent. Comme vous pouvez le voir, nous envoyons des signaux SIDCHILD au parent pour tuer le processus zombie. Ce signal fonctionne comme une police et informe le processus parent de nettoyer les processus zombies en utilisant des appels wait(). Les processus zombies n’utilisent aucune ressource. Ainsi, si vous avez quelques processus zombies, cela peut ne pas endommager votre système, mais si vous avez de nombreux processus zombies, cela peut occuper de nombreux PID et avoir un impact sur le démarrage de nouveaux processus. 

Conclusion

J’adore Linux et j’utilise Linux depuis 20 ans. C’est un système d’exploitation avancé, mais il n’est pas parfait (amateurs de Linux, ne vous offusquez pas. Je pense que c’est bien mieux que Windows). Parfois, quelques applications commencent à se comporter de manière étrange ou à consommer de nombreuses ressources système. Dans de tels cas, vous devez redémarrer le système ou gérer les processus. L’article d’aujourd’hui nous a appris à gérer différents processus et problèmes concernant les processus.