in

Comment utiliser la commande ps pour surveiller les processus Linux

Fatmawati Achmad Zaenuri / Shutterstock

Obtenez un aperçu des processus en cours d’exécution sur votre ordinateur Linux avec le ps commander. Localisez les processus par nom, utilisateur ou même terminal avec autant ou aussi peu de détails que vous en avez besoin. Nous vous montrons comment.

Gestion des processus sous Linux

Le noyau est le cœur battant de tous les systèmes d’exploitation de type Linux et Unix. Parmi ses nombreuses responsabilités, il y a l’allocation des ressources système telles que la RAM et le temps CPU. Celles-ci doivent être jonglées en temps réel pour que tous les processus en cours aient leur juste part, en fonction de la priorité de chaque tâche.

Parfois, les tâches peuvent se bloquer, entrer dans une boucle serrée ou ne plus répondre pour d’autres raisons. Ou ils peuvent continuer à fonctionner, mais engloutir trop de temps CPU ou de RAM, ou se comporter d’une manière tout aussi antisociale. Parfois, les tâches doivent être tuées par pitié pour toutes les personnes impliquées. Le premier pas. Bien entendu, il s’agit d’identifier le processus en question.

Mais peut-être que vous n’avez aucun problème de tâche ou de performance. Peut-être que vous êtes simplement curieux de savoir quels processus s’exécutent à l’intérieur de votre ordinateur et que vous aimeriez jeter un coup d’œil sous le capot. le ps La commande répond à ces deux besoins. Ça te donne un instantané de ce qui se passe à l’intérieur de votre ordinateur « à l’heure actuelle. »

ps est suffisamment flexible pour vous donner précisément les informations dont vous avez besoin dans le format que vous souhaitez. En fait, ps a de nombreuses options. Les options décrites ici répondront aux besoins les plus courants. Si vous avez besoin d’approfondir ps que nous l’avons pris dans cet article, vous constaterez que notre introduction rend la page de manuel plus facile à digérer.

Processus de liste

La façon la plus simple d’utiliser ps est de le lancer sans paramètres:

ps

ps affiche une liste des processus lancés par l’utilisateur qui a exécuté la commande.

Les quatre colonnes sont:

  • PID: Numéro d’identification de processus du processus.
  • ATS: Le nom de la console à laquelle l’utilisateur est connecté.
  • TEMPS: Durée de traitement de l’UC utilisée par le processus.
  • CMD: Le nom de la commande qui a lancé le processus

Processus de liste pour tous les utilisateurs

en ajoutant le -e (sélectionnez tous les processus) nous pouvons faire ps lister les processus qui ont été lancés par tous les utilisateurs, pas seulement par l’utilisateur qui exécute le ps commander. Parce que cela va être une longue liste, nous la canalisons less.

ps -e | less

La liste des processus est redirigée vers less.

Nous avons beaucoup plus d’entrées dans la liste, mais nous voyons les mêmes quatre colonnes qu’avant. Les entrées avec un point d’interrogation ? dans le TTY n’ont pas démarré à partir d’une fenêtre de terminal.

Affichage de la hiérarchie des processus

Parfois, cela peut aider à résoudre un problème ou à identifier un processus particulier si vous pouvez voir quels processus ont lancé d’autres processus. Nous utilisons le -H (hiérarchie) pour ce faire.

ps -eH | less

L’indentation indique quels processus sont les parents de quels autres processus.

Pour ajouter un peu plus de clarté, nous pouvons demander ps pour en ajouter ASCII lignes et pour dessiner la hiérarchie sous forme d’arbre. L’option pour ce faire est la --forest option.

ps -eH --forest | less

Cela facilite le suivi des processus qui sont les parents d’autres processus.

Liste des processus par nom

Vous pouvez diriger la sortie de ps à travers grep pour lister les entrées dont les noms correspondent au terme de recherche. Ici, nous recherchons des entrées qui correspondent au terme de recherche « firefox »:

ps -e | grep firefox

Dans ce cas, la sortie est une seule entrée pour le processus qui nous intéresse. Bien sûr, si nous avions lancé plusieurs instances de Firefox, il y aurait plus d’un élément retourné dans la liste.

Affichage de plus de colonnes dans la sortie

Pour ajouter plus de colonnes à la sortie, utilisez le -f (plein format) option.

ps -ef | less

Un ensemble supplémentaire de colonnes est inclus dans la sortie de ps.

Les colonnes sont:

  • UID: ID utilisateur du propriétaire de ce processus.
  • PID: ID de processus du processus.
  • PPID: ID de processus parent du processus.
  • C: Le nombre d’enfants du processus.
  • STIME: Heure de début. L’heure à laquelle le processus a commencé.
  • ATS: Le nom de la console à laquelle l’utilisateur est connecté.
  • TEMPS: Durée de traitement de l’UC utilisée par le processus.
  • CMD: Le nom de la commande qui a lancé le processus.

En utilisant le -F (extra plein format) option, nous pouvons obtenir encore plus de colonnes:

ps -eF | less

Les colonnes que nous obtenons cette fois nécessitent un défilement latéral de l’écran pour toutes les révéler.

Appuyez sur la touche «Flèche droite» pour déplacer l’affichage vers la gauche.

Les colonnes que nous obtenons maintenant sont:

  • UID: ID utilisateur du propriétaire de ce processus.
  • PID: ID de processus du processus.
  • PPID: ID de processus parent du processus.
  • C: Le nombre d’enfants du processus.
  • SZ: Taille en pages RAM de la mémoire image.
  • RSS: Taille de l’ensemble des résidents. Il s’agit de la mémoire physique non permutée utilisée par le processus.
  • PSR: Processeur auquel le processus est affecté.
  • STIME: Heure de début. L’heure à laquelle le processus a commencé.
  • ATS: Le nom de la console à laquelle l’utilisateur est connecté.
  • TEMPS: Durée de traitement de l’UC utilisée par le processus.
  • CMD: Le nom de la commande qui a lancé le processus.

Liste des processus par ID de processus

Une fois que vous avez trouvé l’ID de processus pour le processus qui vous intéresse, vous pouvez l’utiliser avec le ps commande pour lister les détails de ce processus. Utilisez le -p (sélectionner par ID de processus) pour y parvenir:

ps -p 3403

Les détails de ce processus sont répertoriés:

Vous n’êtes pas limité à un seul ID de processus. Vous pouvez fournir une liste d’ID de processus, séparés par des espaces.

Liste des processus par commande

le -C L’option (commande) vous permet de rechercher un processus en utilisant le nom de la commande. Autrement dit, le nom de la commande qui a lancé le processus. Ceci est légèrement différent de la ligne de commande, qui peut inclure des noms de chemin et des paramètres ou des options.

ps -C shutter

Les détails du processus d’obturation sont répertoriés.

Liste des processus appartenant à un utilisateur

Pour voir les processus appartenant à un utilisateur particulier, utilisez le -u (liste d’utilisateurs) option:

ps -u mary

Les processus appartenant au compte utilisateur mary sont affichés.

Liste des processus par terminal

Pour voir les processus associés à un TTY, utilisez le -t (sélectionner par TTY). Utilisé sans numéro TTY, le -t L’option rapporte les processus associés à la fenêtre de terminal actuelle.

tty
ps -t

le tty la commande signale qu’il s’agit du pseudo-télétype 0. Les processus répertoriés par ps -t sont tous associés à TTY pts/0.

Si nous transmettons un numéro TTY sur la ligne de commande, nous devrions obtenir un rapport des processus associés à ce TTY.

ps -t 1

Cette fois, les processus sont tous associés à TTY pts/1.

Sélection des colonnes à afficher

Avec le -o (format) vous pouvez sélectionner les colonnes que vous souhaitez inclure dans la sortie de ps. Vous spécifiez les colonnes par nom. La (longue) liste des noms de colonnes est visible sur le page de manuel dans la section intitulée «Spécificateurs de format standard». Dans cet exemple, nous choisissons d’avoir le temps CPU (pcpu) et la ligne de commande avec des arguments (args) inclus dans la sortie.

ps -e -o pcpu,args | less

La sortie n’inclut que nos deux colonnes demandées.

Tri de la sortie par colonnes

Vous pouvez avoir la sortie triée pour vous en utilisant le --sort option. Trions la sortie par la colonne CPU:

ps -e -o pcpu,args --sort -pcpu| less

Le trait d’union « - » sur le pcpu Le paramètre sort donne un ordre de tri décroissant.

Pour voir les dix processus les plus gourmands en ressources processeur, dirigez la sortie via le head commander:

ps -e -o pcpu,args --sort -pcpu | head -10

Nous obtenons une liste triée et tronquée.

Si nous ajoutons plus de colonnes à notre affichage, nous pouvons trier par plus de colonnes. Ajoutons le pmem colonne. Il s’agit du pourcentage de mémoire de l’ordinateur utilisé par le processus. Sans trait d’union ou avec un plus  » +«, L’ordre de tri est croissant.

ps -e -o pcpu,pmem,args --sort -pcpu,pmem | head -10

Nous obtenons notre colonne supplémentaire, et la nouvelle colonne est incluse dans le tri. La première colonne est triée avant la deuxième colonne et la deuxième colonne est triée par ordre croissant car nous n’avons pas mis de tiret sur pmem.

Rendons-le un peu plus utile et ajoutons dans la colonne ID de processus (pid) afin que nous puissions voir le numéro de processus de chaque processus dans notre liste.

ps -e -o pid,pcpu,pmem,args --sort -pcpu,pmem | head -10

Nous pouvons maintenant identifier les processus.

Sortie de ps -e -o pid, pcpu, pmem, args --sort -pcpu, pmem |  tête 10

Tuer des processus par ID de processus

Nous avons couvert une gamme de façons d’identifier les processus, y compris le nom, la commande, l’utilisateur et le terminal. Nous avons également couvert des moyens d’identifier les processus par leurs attributs dynamiques, tels que l’utilisation du processeur et la mémoire.

Ainsi, d’une manière ou d’une autre, nous pouvons identifier les processus en cours d’exécution. En connaissant leur identifiant de processus, nous pouvons (si nécessaire) tuer l’un de ces processus en utilisant le kill commander. Si nous voulions tuer le processus 898, nous utiliserions ce format:

sudo kill 898

Si tout se passe bien, le processus se termine en silence.

Tuer les processus par nom

le pkill la commande vous permet de tuer les processus par leur nom. Assurez-vous d’avoir identifié le bon processus! Cette commande mettra fin au processus supérieur.

sudo pkill top

Encore une fois, aucune nouvelle n’est une bonne nouvelle. Le processus est arrêté en silence.

Tuer plusieurs processus par nom

Si vous avez plusieurs copies d’un processus en cours d’exécution ou si un processus a engendré un certain nombre de processus enfants (comme Google Chrome peut le faire), comment pouvez-vous les éliminer? C’est tout aussi simple. Nous utilisons le killall commander.

Nous avons deux copies du top en cours d’exécution:

ps -e | grep top

Nous pouvons résilier tous les deux avec cette commande:

sudo killall top

Aucune réponse signifie aucun problème, donc ces deux processus ont été interrompus.

sortie de sudo killall top dans une fenêtre termonale

Obtenez une vue dynamique avec top

La sortie de ps est une vue instantanée. Il ne se met pas à jour. Pour obtenir une vue actualisée des processus, utilisez le top commander. Il fournit un vue dynamique des processus exécutés sur votre ordinateur. L’affichage est en deux parties. Il y a une zone de tableau de bord en haut de l’écran composée de lignes de texte, et un tableau dans la partie inférieure de l’écran composé de colonnes.

Démarrer top avec cette commande:

top

Les colonnes contiennent des informations sur les processus:

  • PID: ID de processus
  • UTILISATEUR: Nom du propriétaire du processus
  • PR: Processus prioritaire
  • NI: La belle valeur du procédé
  • VIRT: Mémoire virtuelle utilisée par le processus
  • RES: Mémoire résidente utilisée par le processus
  • SHR: Mémoire partagée utilisée par le processus
  • S: Statut du processus. Consultez la liste ci-dessous des valeurs que ce champ peut prendre
  • %CPU: la part du temps CPU utilisé par le processus depuis la dernière mise à jour
  • % MEM: part de mémoire physique utilisée
  • TEMPS +: temps CPU total utilisé par la tâche en centièmes de seconde
  • COMMANDER: nom de commande ou ligne de commande (nom et paramètres de ligne de commande) Si la colonne de commande n’est pas visible, appuyez sur la touche «Flèche droite».

Le statut du processus peut être l’un des suivants:

  • : Sommeil ininterrompu
  • R: En cours
  • S: En train de dormir
  • T: Tracé (arrêté)
  • Z: Zombie

Appuyez sur la touche «Q» pour quitter top.

Avant de tuer un processus

Assurez-vous que c’est celui que vous recherchez et vérifiez que cela ne vous posera aucun problème. En particulier, il vaut la peine de vérifier avec le -H (hiérarchie) et --forest des options pour vous assurer qu’il ne contient aucun processus enfant important que vous auriez oublié.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment ajouter un effet d'ombre portée à Paint.NET

Comment ajouter un effet d’ombre portée à Paint.NET

Qu'est-ce qu'AppArmor et comment sécurise-t-il Ubuntu?

Qu’est-ce qu’AppArmor et comment sécurise-t-il Ubuntu?