Comment utiliser la commande ps pour surveiller les processus Linux

Contenu

Une fenêtre de terminal sur un ordinateur portable Linux.

Obtenez un instantané des processus en cours d'exécution sur votre ordinateur Linux avec le ps commander. Localiser les processus par nom, utilisateur ou même terminal avec autant ou aussi peu de détails que vous le souhaitez. Nous vous montrons comment.

Gestion des processus sous Linux

Le cœur de tous les systèmes d'exploitation Linux et Unix est le noyau. Parmi ses nombreuses responsabilités figure l'allocation des ressources système, comme la RAM et le temps CPU. Ceux-ci doivent être combinés en temps réel afin que tous les processus en cours obtiennent leur juste part, selon la priorité de chaque tâche.

Parfois, les tâches peuvent planter, entrer dans un circuit fermé ou devenir insensible pour d'autres raisons. Ou ils peuvent continuer à courir, mais ils consomment trop de temps CPU ou RAM, ou se comporter de manière tout aussi antisociale. Parfois, les corvées devraient être supprimées par pitié pour toutes les personnes impliquées. Le premier pas. Résolument, est d'identifier la procédure en question.

Mais peut-être n'avez-vous aucun problème de devoirs ou de performances. Peut-être êtes-vous simplement curieux de savoir quels processus s'exécutent dans votre ordinateur et souhaitez jeter un œil sous le capot. Les ps La commande répond aux deux besoins. te le donne un instantané de ce qui se passe à l'intérieur de votre ordinateur “à présent.”

ps est suffisamment flexible pour vous donner exactement les informations dont vous avez besoin dans exactement le format que vous souhaitez. En réalité, ps tu as beaucoup d'options. Les alternatives décrites ici couvriront les besoins les plus courants. Si vous voulez vous plonger dans ps de ce que nous avons pris dans ce post, vous constaterez que notre introduction rend la page de manuel plus facile à digérer.

Processus de référencement

La façon la plus simple d'utiliser ps est de l'allumer sans paramètres:

ps

ps affiche une liste des processus démarrés par l'utilisateur qui a exécuté la commande.

Les quatre colonnes sont:

  • PID: Le numéro d'identification de la procédure.
  • ATS: Le nom de la console à laquelle l'utilisateur est connecté.
  • CONDITIONS MÉTÉOROLOGIQUES: Le temps de traitement CPU utilisé par la procédure.
  • CMD: Le nom de la commande qui a démarré la procédure

Procédure de référencement pour tous les utilisateurs

en ajoutant le -e (sélectionner tous les processus) nous pouvons faire ps lister les processus qui ont été lancés par tous les utilisateurs, pas seulement l'utilisateur qui exécute le ps commander. Parce que ce sera une longue liste, nous l'intégrons dans less.

ps -e | moins

La liste des processus est redirigée vers less.

Nous avons beaucoup plus d'entrées dans la liste, mais on voit les mêmes quatre colonnes qu'avant. Entrées avec un point d'interrogation ? dans le TTY La colonne n'a pas démarré à partir d'une fenêtre de terminal.

Afficher la hiérarchie des processus

Parfois, vous pouvez aider à corriger un barrage routier ou à identifier une procédure particulière si vous pouvez voir quels processus ont démarré d'autres processus. Nous utilisons le -H (hiérarchie) possibilité de le faire.

ps -eH | moins

L'indentation indique quels processus sont parents de quels autres processus.

Pour ajouter un peu plus de clarté, Nous pouvons demander ps ajouter quelque chose ASCII lignes et pour dessiner la hiérarchie sous forme d'arbre. L'option pour le faire est la --forest option.

ps -eH --forêt | moins

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 de grep pour lister les entrées qui ont des noms qui correspondent au terme de recherche. à présent. “à présent.”:

ps -e | grep firefox

Pour ce cas, la sortie est une entrée unique pour la procédure qui nous intéresse. Résolument, si nous avions lancé plusieurs instances de Firefox, il y aurait plus d'un élément renvoyé dans la liste.

Afficher plus de colonnes dans la sortie

Pour ajouter plus de colonnes à la sortie, utiliser el -f option (format complet).

ps -ef | moins

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

Les colonnes sont:

  • UID: ID utilisateur du propriétaire de cette procédure.
  • PID: L'identifiant de la procédure.
  • PPID: ID de la procédure principale de la procédure.
  • C: Le nombre d'enfants que la procédure a.
  • CONDITIONS MÉTÉOROLOGIQUES: Heure de début. Le moment où la procédure a commencé.
  • ATS: Le nom de la console à laquelle l'utilisateur est connecté.
  • CONDITIONS MÉTÉOROLOGIQUES: Le temps de traitement CPU utilisé par la procédure.
  • CMD: Le nom de la commande qui a démarré la procédure.

En utilisant le -F (format supplémentaire complet) nous pouvons obtenir encore plus de colonnes:

ps -eF | moins

Les colonnes que nous obtenons cette fois nécessitent que l'écran défile latéralement pour les révéler toutes.

à présent. “Flèche droite”, l'écran défile vers la gauche.

Les colonnes que nous obtenons maintenant sont:

  • UID: ID utilisateur du propriétaire de cette procédure.
  • PID: L'identifiant de la procédure.
  • PPID: ID de la procédure principale de la procédure.
  • C: Le nombre d'enfants que la procédure a.
  • SZ: Taille de l'image de procédure dans les pages RAM.
  • RSS: Taille de l'ensemble résident. Il s'agit de la mémoire physique inchangée utilisée par la procédure.
  • RPS: Le sous-traitant auquel la procédure est affectée.
  • CONDITIONS MÉTÉOROLOGIQUES: Heure de début. Le moment où la procédure a commencé.
  • ATS: Le nom de la console à laquelle l'utilisateur est connecté.
  • CONDITIONS MÉTÉOROLOGIQUES: Le temps de traitement CPU utilisé par la procédure.
  • CMD: Le nom de la commande qui a démarré la procédure.

Liste des processus par ID de procédure

Une fois que vous avez trouvé l'ID de procédure pour la procédure qui vous intéresse, vous pouvez l'utiliser avec le ps commande pour lister les détails de cette procédure. Utilisez le -p (choisir par ID de procédure) possibilité d'y parvenir:

ps-p 3403

Les détails de cette procédure sont répertoriés:

Vous n'êtes pas limité à un identifiant de procédure. Vous pouvez fournir une liste d'ID de processus, séparés par des espaces.

Liste des processus par commande

Les -C L'option (commander) permet de rechercher une procédure à l'aide du nom de la commande. Autrement dit, le nom de la commande qui a démarré la procédure. 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.

obturateur ps -C

Les détails de la procédure d'obturation sont répertoriés.

Liste des processus détenus par un utilisateur

Pour afficher les processus appartenant à un utilisateur particulier, utiliser el -u (liste d'utilisateur) option:

ps -tu marie

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

Liste des processus par terminal

Pour visualiser les processus associés à un ATS, utiliser el -t (choisir par ATS) option. Utilisé sans numéro ATS, les -t L'option rend compte des traitements associés à la fenêtre de terminal courante.

tty
TVP

Les tty la commande signale qu'il s'agit d'un pseudo-ticker 0. Les processus répertoriés par ps -t sont tous associés à TTY pts/0.

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

TVP 1

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

EN RELATION: Qu'est-ce qu'un ATS sous Linux? (et comment utiliser la commande tty)

Choisissez les colonnes à afficher

Avec lui -o (format) vous pouvez choisir les colonnes que vous souhaitez inclure dans la sortie de ps. Les colonnes sont spécifiées par nom. La liste (longue) les noms de colonnes peuvent être vus dans le page de manuel à présent. “à présent.”. 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,arguments | moins

La sortie ne comprend que nos deux colonnes demandées.

Trier la sortie par colonnes

Vous pouvez trier la sortie pour vous en utilisant le --sort option. Trions la sortie par la colonne CPU:

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

à présent. “-” sur le pcpu Le paramètre sort donne un ordre de tri décroissant.

Pour voir les dix processus les plus gourmands en CPU, canaliser la sortie à travers le head commander:

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

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

Si nous ajoutons plus de colonnes à notre écran, nous pouvons trier par plusieurs colonnes. Ajoutons le pmem colonne. Il s'agit du pourcentage de la mémoire de l'ordinateur utilisé par la procédure.. à présent. ” +", L'ordre de tri est croissant.

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

On obtient notre colonne supplémentaire et la nouvelle colonne est incluse dans le classement. 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 dans pmem.

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

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

Nous pouvons maintenant identifier les processus.

Ps -e -o pid sortie, pcpu, pmem, args --sort -pcpu, pmem |  Tête 10

Tuer les processus par ID de procédure

Nous avons couvert une gamme d'alternatives pour identifier les processus, y compris le nom, la commande, utilisateur et terminal. Nous couvrons également des alternatives pour identifier les processus par leurs attributs dynamiques, comme l'utilisation du processeur et de la mémoire.

Ensuite, d'une façon ou d'une autre, nous pouvons identifier les processus en cours. Connaître votre identifiant de procédure, pouvons (si c'est nécessaire) supprimer l'un de ces processus à l'aide de la kill commander. Si on voulait tuer la procédure 898, nous utiliserions ce format:

sudo tuer 898

Si tout va bien, la procédure se termine silencieusement.

EN RELATION: Comment tuer les processus du terminal Linux

Tuer les processus par nom

Les pkill la commande vous permet tuer les processus par nom. Assurez-vous d'avoir identifié la bonne procédure! Cette commande terminera la procédure supérieure.

haut sudo pkill

Une fois de plus, ne pas avoir de nouvelles est une bonne nouvelle. La procédure se termine silencieusement.

Tuer plusieurs processus par nom

Si vous avez plusieurs copies d'une procédure en cours, ou une procédure a engendré plusieurs processus enfants (comment peut faire google chrome), Comment pouvez-vous les supprimer? C'est tout aussi facile. Nous utilisons le killall commander.

Nous avons deux exemplaires de top running:

ps -e | dessus de poignée

Nous pouvons finir les deux avec cette commande:

haut sudo killall

S'il n'y a pas de réponse, pas de problème, donc les deux processus sont terminés.

sudo killall top sortie dans une fenêtre thermonal

Obtenez une vue dynamique avec le haut

La sortie de ps c'est une vue instantanée. il ne s'actualise pas. Pour obtenir une vue à jour de vos processus, Utilisez le top commander. Fournit un vue dynamique des processus en cours d'exécution sur votre ordinateur. L'écran est divisé 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 en bas de l'écran composé de colonnes.

Démarrer top avec cette commande:

Haut

Les colonnes contiennent des informations sur les processus:

  • PID: Identification de la procédure
  • NOM D'UTILISATEUR: Nom du titulaire de la procédure
  • RP: Procédure prioritaire
  • NI: La bonne valeur de la procédure
  • VIRT: Mémoire virtuelle utilisée par la procédure
  • RES: Mémoire résidente utilisée par la procédure
  • SHR: Mémoire partagée utilisée par la procédure
  • S: Statut de la procédure. Voir la liste ci-dessous des valeurs que ce champ peut prendre
  • %CUP: le pourcentage de temps CPU utilisé par la procédure depuis la dernière mise à jour
  • % MEM: pourcentage de mémoire physique utilisé
  • CONDITIONS MÉTÉOROLOGIQUES +: temps CPU total utilisé par la tâche en centièmes de seconde
  • COMMANDER: nom de la commande ou ligne de commande (nom et paramètres de la ligne de commande) Si vous ne voyez pas la colonne de commande, appuyez sur la touche "flèche droite".

L'état de la procédure peut être l'un des suivants:

  • : Sommeil ininterrompu
  • R: Pressé
  • S: Endormi
  • T: Tracé (arrêté)
  • AVEC: Zombi

appuyez sur la touche “Q” à présent. top.

EN RELATION: 37 Commandes Linux importantes que vous devez connaître

Avant de tuer une procédure

Assurez-vous que c'est bien celui que vous recherchez et vérifiez qu'il ne vous pose aucun problème. En particulier, Il est important de souligner la consultation du -H (hiérarchie) et --forest options pour vous assurer que vous n'avez pas de processus enfants importants que vous avez oubliés.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.