Sous Linux, une instance en cours d'exécution d'un programme est appelée processus. Parfois, lorsque vous travaillez sur une machine Linux, vous devrez peut-être savoir quels processus sont en cours d'exécution.
Il existe un certain nombre de commandes que vous pouvez utiliser pour trouver des informations sur les processus en cours d'exécution, avec ps
, pstree
, et top
étant les plus couramment utilisés.
Cet article explique comment utiliser le ps
pour répertorier les processus en cours d'exécution et afficher des informations sur ces processus.
Comment utiliser ps
Commande #
La syntaxe générale pour le ps
commande est la suivante :
ps [OPTIONS]
Pour des raisons historiques et de compatibilité, le ps
La commande accepte plusieurs types d'options :
- Options de style UNIX, précédées d'un seul tiret.
- Options de style BSD, utilisées sans tiret.
- Options longues GNU, précédées de deux tirets.
Différents types d'options peuvent être mélangés, mais dans certains cas particuliers, des conflits peuvent apparaître, il est donc préférable de s'en tenir à un seul type d'option.
Les options BSD et UNIX peuvent être regroupées.
Dans sa forme la plus simple, lorsqu'il est utilisé sans aucune option, ps
imprimera quatre colonnes d'informations pour au moins deux processus en cours d'exécution dans le shell actuel, le shell lui-même et les processus qui s'exécutent dans le shell lorsque la commande a été invoquée.
ps
La sortie inclut des informations sur le shell (bash
) et le processus exécuté dans ce shell (ps
, la commande que vous avez saisie) :
PID TTY TIME CMD
1809 pts/0 00:00:00 bash
2043 pts/0 00:00:00 ps
Les quatre colonnes sont étiquetées PID
, TTY
, TIME
, et CMD
.
PID
- L'identifiant du processus. Habituellement, lors de l'exécution deps
, l'information la plus importante recherchée par l'utilisateur est le PID du processus. Connaître le PID vous permet de tuer un processus défectueux.TTY
- Le nom du terminal de contrôle du processus.TIME
- Le temps CPU cumulé du processus, affiché en minutes et secondes.CMD
- Le nom de la commande qui a été utilisée pour démarrer le processus.
La sortie ci-dessus n'est pas très utile car elle ne contient pas beaucoup d'informations. La vraie puissance du ps
la commande vient lorsqu'elle est lancée avec des options supplémentaires.
Le ps
La commande accepte un grand nombre d'options qui peuvent être utilisées pour afficher un groupe spécifique de processus et différentes informations sur le processus, mais seules quelques-unes sont nécessaires dans l'utilisation quotidienne.
ps
est le plus souvent utilisé avec la combinaison d'options suivante :
Formulaire BSD :
ps aux
- Le
a
l'option indiqueps
pour afficher les processus de tous les utilisateurs. Seuls les processus non associés à un terminal et les processus des chefs de groupe ne sont pas affichés. u
représente un format orienté utilisateur qui fournit des informations détaillées sur les processus.- Le
x
l'option indiqueps
pour lister les processus sans terminal de contrôle. Il s'agit principalement de processus lancés au démarrage et exécutés en arrière-plan.
La commande affiche des informations dans onze colonnes intitulées USER
, PID
, %CPU
, %MEM
, VSZ
, RSS
, STAT
, START
, TTY
, TIME
, et CMD
.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd]
...
Nous avons déjà expliqué PID
, TTY
, TIME
et CMD
Étiquettes. Voici une explication des autres libellés :
USER
- L'utilisateur qui exécute le processus.%CPU
- L'utilisation cpu du processus.%MEM
- Le pourcentage de la taille de l'ensemble résident du processus par rapport à la mémoire physique de la machine.VSZ
- Taille de la mémoire virtuelle du processus en KiB.RSS
- La taille de la mémoire physique utilisée par le processus.STAT
- Le code d'état du processus, tel queZ
(zombi),S
(dormir) etR
(en cours d'exécution).START
- L'heure à laquelle la commande a commencé.
Le f
l'option indique ps
pour afficher une arborescence des processus parent à enfant :
ps auxf
Le ps
La commande vous permet également de trier la sortie. Par exemple, pour trier la sortie en fonction de l'utilisation de la mémoire, vous utiliserez :
ps aux --sort=-%mem
Formulaire UNIX :
ps -ef
- Le
-e
l'option indiqueps
pour afficher tous les processus. - Le
-f
est une liste au format complet, qui fournit des informations détaillées sur les processus.
La commande affiche des informations dans huit colonnes intitulées UID
, PID
, PPID
, C
, STIME
, TIME
, et CMD
.
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:47 ? 00:00:01 /sbin/init
root 2 0 0 19:47 ? 00:00:00 [kthreadd]
...
Les étiquettes qui ne sont pas déjà expliquées ont la signification suivante :
UID
- Identique àUSER
, l'utilisateur qui exécute le processus.PPID
- L'identifiant du processus parent.C
- Identique à%CPU
, l'utilisation du processeur du processus.STIME
- Identique àSTART
, l'heure à laquelle la commande a démarré.
Pour afficher uniquement les processus en cours d'exécution en tant qu'utilisateur spécifique, tapez la commande suivante, où linuxize
est le nom de l'utilisateur :
ps -f -U linuxize -u linuxize
Format défini par l'utilisateur #
Le o
L'option vous permet de spécifier quelles colonnes sont affichées lors de l'exécution de ps
commande.
Par exemple, pour imprimer des informations uniquement sur le PID
et COMMAND
, vous exécuteriez l'une des commandes suivantes :
ps -efo pid,comm
ps auxo pid,comm
Utilisation de ps
Avec d'autres commandes #
ps
peut être utilisé en combinaison avec d'autres commandes via la tuyauterie.
Si vous souhaitez afficher la sortie du ps
commande, une page à la fois, dirigez-la vers le less
commande :
ps -ef | less
La sortie du ps
la commande peut être filtrée avec grep
. Par exemple, pour afficher uniquement le processus appartenant à l'utilisateur root que vous exécuteriez :
ps -ef | grep root
Conclusion #
Le ps
La commande est l'une des commandes les plus couramment utilisées lors du dépannage de problèmes sur les systèmes Linux. Il a de nombreuses options, mais généralement, la plupart des utilisateurs utilisent soit ps aux
ou ps -ef
pour recueillir des informations sur les processus en cours d'exécution.
Pour plus d'informations sur ps
, tapez man ps
dans votre terminal.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.