Commande ps : ------------- Fonction Affiche l'état en cours des processus. Syntaxe ps [ -A ] [ -a ] [ -d ] [ -e ] [ -f ] [ -k ] [ -l ] [ -F Format ] [ -G Glist ] [ -g Glist ] [ -p Plist ] [ -t Tlist ] [ -U Ulist ] [ -u Ulist ] ps [ a ] [ c ] [ e ] [ g ] [ l ] [ n ] [ s ] [ t Tty ] [ U ] [ u ] [ v ] [ w ] [ x ] [ NumeroProcess ] ___________________________________________________________________________ NOTES : ------- * ps -fu xxx = ps -ef | grep xxx Avantage : en faisant un ps -fu on ne voit pas le proces grep ________________________________________________________________________________ Description La commande ps affiche des informations relatives aux processus actifs. Si vous ne spécifiez pas d'option, la commande ps affiche des informations relatives au poste de travail en cours. Les options -f, -F, l, -l, s, u et v font référence aux informations fournis à propos d'un processus; elles ne spécifient aucun processus et sont mutuellement exclusives. Avec l'option -f, la commande ps détermine (par une recherche dans la mémoire ou dans la zone de pagination) le nom de la commande et les paramètres au moment de la création du processus. Si ps ne trouve pas ces informations, le nom de commande stocké dans le noyau s'affiche entre crochets. Les en-têtes de colonnes dans le résultat de la commande ps ont la signification suivante: (les lettres entre parenthèses désignent les options utilisées) F (-l, l) Positionnement du processus (valeur octale) 01 En mémoire 02 Processus système 04 Verrouillé en mémoire (exemple une E-S physique) 10 En attente de page ou en création de processus (fork) 20 Trace en cours par un autre processus 40 Autre option de trace 100 Processus possédant du texte partagé S (-l, l) Etat du processus : 0 Inexistant S En sommeil W En attente R En cours d'exécution I Intermédiaire Z Annulé T Arrêté K Processus noyau disponible X En extension UID (-l, l, v) ID utilisateur du propriétaire du processus. USER (-f, u) Le nom du proprietaire du processus. (Login) PID (all) ID du processus. PPID (f, l, -l, u) ID du processus père. C (-f, l, -l, u) Utilisation du processeur pour le traitement. STIME (-f, u) Heure de lancement du processus. Les variables d'environnement NLLDATE et NLTIME gèrent la présentation de cette zone. PRI (-l, l) Priorité du processus ; plus le nombre est important, plus le niveau de priorité est faible. NI (l, -l) Valeur nice (utilisée pour les calculs de priorité). ADDR (l, -l) Numéro de segment de la pile d'un processus ou, dans le cas d'un processus de noyau, adresse de la zone de données du préprocessus. SZ (l, -l) Taille (en blocs) de l'image mémoire du processus. WCHAN (-l) Evénement pour lequel le processus est en sommeil ou en attente ; si cette zone est vide, le processus est en cours d'exécution. WCHAN (l) Evénement pour lequel le processus est en attente (adresse dans le système). Un symbole est choisi qui détermine cette adresse, à moins qu'on spécifie une sortie numérique. TTY (all) Poste de travail controlant le processus: - Le processus n'est pas associé avec un Poste de travail. ? Poste de travail inconnu. Numéro Le numéro du TTY (par exemple 2 pour tty2) TIME (-f, l, -l, s, u) Temps total d'exécution du processus. CMD (-f,-l, l, v) Nom de la commande ; l'option -f permet d'afficher le nom complet de la commande et ses paramètres. SSIZ (v) La taille du buffer du Noyau (Kernel Stack). PGIN (v) Nombre d'E-S de disque utilisé par le processus pour faire référence à des pages non chargées en mémoire. SIZE (v) Mémoire virtuelle du processus (data section) en K (1024 octets). RSS (v) Mémoire réelle (partie résidente) du processus en K (1024 octets). LIM (v) Limite temporaire d'utilisation de mémoire (spécifiée par l'intermédiaire d'un appel au sous-programme setrlimit). Si aucune limite n'est spécifiée, xx s'affiche. Si elle correspond à la limite système (illimitée), UNLIM appara¯t. TSIZ (v) Taille de l'image texte (programme partagé). TRS (v) Taille de mémoire réelle (partie résidente) de texte. %CPU (u, v) Pourcentage d'utilisation de la CPU par le processus. La base de temps de calcul étant variable, il est possible que le total de toutes les zones %CPU soit supérieur à 100%. %MEM (u, v) Pourcentage de mémoire réelle utilisée par le processus. Un processus terminé qui n'a pas encore été attendu par l'un de ses parents est marqué ; un processus bloqué qui tente de prendre fin est marqué ; la commande ps essaie de déterminer (par une recherche dans la mémoire ou dans la zone de pagination) le nom de fichier et les arguments entrés lors de la création du processus. Remarques : 1. Le processus peut changer au cours de l'exécution de la commande ps. 2. Certaines données affichées concernent des processus terminés et ne sont donc pas pertinentes. Options Les options suivantes sont précédées du caractère tiret (-): -A Affiche les résultats sur la sortie standard sur tous les processus. -a Affiche des informations relatives à tous les processus (à l'exception des amorces de processus et des processus qui ne sont pas associés à un terminal). -d Affiche des informations relatives à tous les processus (à l'exception des amorces de processus). -e Affiche des informations relatives à tous les processus (à l'exception des processus de noyau. -f Affiche une liste complète. -F Format Affiche les informations suivant la variable Format. De multiples zones peuvent être spécifiées dans la variable Format. Celle-ci spécifie les zones séparées par des virgules ou entourées de double-quotes (") séparées par des blancs ou des virgules. Chaque zone a un titre par défaut, celui-ci peut être changé en utilisant un signe égale (=) suivi de nouveau texte de titre. Les zones sont affichées dans l'ordre spécifié dans la variable Format. La largeur des zones sont définie pour être aussi large que les titres par défauts ou spécifiés par l'utilisateur. Si le titre spécifié est nulle ( -F users= ) la largeur est le défaut. Les zones suivantes sont reconnues par le système: ------------------------------------------------- args : Affiche le nom complet de la commande en cours, des coupures peuvent se faire. Le titre par défaut est COMMAND. comm : Affiche le nom raccourci de la commande en cours. Les paramètres de la commandes ne sont pas affichés. Le titre par défaut est COMMAND. etime : Affiche le temps écoulé depuis le début du démarrage du processus. Ce temps est sous le format : [[ jj-]hh:]mm:ss => jj signifie le jour, hh l'heure, mm les minutes et ss les secondes. Le titre par défaut est ELAPSED. gname : Affiche l'ID du groupe effectif du processus. S'il ne peut être obtenu, une représentation décimale est utilisée. Le titre par défaut est GROUP. nice : Affiche la valeur décimale de la prioprité du processus. Le titre par défaut est NI. pcpu : Affiche le ratio du temps CPU utilisé sur le temps disponible, exprimé comme un pourcentage. Le titre par défaut est %CPU. pgid : Affiche la valeur décimale de l'ID du group de peocessus. Le titre par défaut est PGID. pid : Affiche la valeur décimale de l'ID du processus. Le titre par défaut est PID. ppid : Affiche la valeur décimale de l'ID du processus père. Le titre par defaut est PPID. rgname : Affiche l'ID du groupe réel du processus. S'il ne peut être obtenu, une représentation décimale est utilisée. Le titre par défaut est RGROUP. runame : Affiche l'ID de l'utilisateur réel du processus. S'il ne peut être obtenu, une représentation décimale est utilisée. Le titre par défaut est RUSER.. time : Affiche le temps CPU cumulé depuis le début du processus. Ce temps est sous le format : [[ jj-]hh:]mm:ss => jj signifie le jour, hh l'heure, mm les minutes et ss les secondes. Le titre par défaut est TIME. tty : Affiche le nom du terminal controlant le processus, s'il y en a un. Le titre par défaut est TT. uname : Affiche l'ID de l'utilisateur effectif du processus. S'il ne peut être obtenu, une représentation décimale est utilisée. Le titre par défaut est USER. vsz : Affiche la taille en kilo-octets du processus en mémoire virtuelle en un entier. Le titre par défaut est VSZ. La variable Format peut utilisé des abréviations. Il faut utiliser les doubles quotes lors de leurs utilisations. Le tableau suivant nous donne les correspondances:: Abréviations Noms Titres %a args COMMAND %c comm COMMAND %t etime ELAPSED %G gname GROUP %n nice NI %c pcpu %CPU %r pgid PGID %p pid PID %p ppid PPID %g rgname RGROUP %u runame RUSER %x time TIME %y tty TT %U uname USER %z vsz VSZ -G Glist Affiche des informations relatives aux processus appartenant aux groupes listés dans Glist (liste d'identificateurs de groupe de processus, compris ou non entre guillemets - # " - et séparés les uns des autres soit par une virgule soit par un ou plusieurs espaces). -g Glist Options identique à la précedente. -k Liste les processus du noyau (kernel). -l Affiche une liste longue. (voir l'option l) -p Pliste Affiche des informations relatives aux processus dont les numéros figurent dans Pliste (liste de numéros d'ID de processus, placés ou non entre guillemets - # " - et séparés les uns des autres par une virgule et/ou par un ou plusieurs espaces). -U Uliste Affiche des informations relatives aux processus dont les numéros d'ID ou les noms d'utilisateur sont spécifiés dans Uliste (liste d'ID utilisateur placées ou non entre guillemets - " " - et séparées les unes des autres par une virgule et par un ou plusieurs espaces). La commande ps affiche l'ID utilisateur numérique sauf si l'option -f est spécifiée ; dans ce cas, elle affiche le nom d'utilisateur. -u Uliste Option équivalente à la précédente. -t Tliste Affiche des informations relatives aux processus associés aux postes de travail listés dans Tliste (liste d'identificateurs de poste de travail placés ou non entre guillemets - # " - et séparés les uns des autres par une virgule et/ou par un ou plusieurs espaces). Si vous ne placez pas de tiret (-) devant l'option : a Affiche des informations relatives aux processus associés à des terminaux (généralement, seuls les processus des utilisateurs figurent dans la liste). c Affiche le nom de la commande tel qu'il est stocké dans le système pour les statistiques et non les paramètres, conservés dans l'espace d'adresse du processus. e Affiche l'environnement et les paramètres de la commande. g Affiche tous les processus, à l'exception des processus d'amorce. l Affiche une liste longue comportant les zones PPID, C, PRI, NI, ADDR, SZ et WCHAN. n Affiche une sortie numérique. Dans une liste longue, la zone WCHAN est présentée sous forme numérique et non symbolique. Dans une liste utilisateur, la zone USER est remplacée par la zone UID. s Affiche la taille (SSIZ) de la pile du noyau pour chaque processus en format de sortie standard (cette option est destinée aux administrateurs système). t Affiche la sortie des processus dont le terminal de controle est x (spécifié par l'intermédiaire de la commande ps, soit tty01 pour le terminal /dev/tty01, tcons pour /dev/console et ttyd0 pour /dev/ttrd0). L'option t doit être spécifiée en dernière position sur la ligne de commande. U Met à jour le fichier interne /etc/ps_data, si l'utilisateur peut écrire sur ce fichier (root). La commande ps gére une base de données interne sur le fichier /etc/ps_data pour comparer les noms avec les identifications systèmes. Si /etc/passwd est modifié ps met à jour la base de données. u Affiche une sortie orientée utilisateur comprenant les zones USER, PID, %CPU, %MEM, SZ, RSS, TT, STAT, TIME et CMD. v Affiche les zones PGIN, SIZE, RSS, LIM, TSIZ, TRS, %CPU et %MEM. x Affiche les processus associés à aucun terminal. Exemples 1. Pour afficher l'ensemble des processus : ps -e -f 2. Pour afficher la liste des processus de certains utilisateurs : ps -f -l -upierre,paul,jean 3. Pour afficher la liste des processus associés à une console et a /dev/hdt1 : ps -t console,hft/1 4. Pour afficher la liste des processus non-associés à un terminal : ps -t - 5. Pour afficher un format avec des zones prédéterminées : ps -F runame,pid,ppid=parent,args le résultat sera : RUSER PID parent COMMAND helene 34 12 ps -F runame,pid,ppid=parent,args 6. Pour afficher un format avec des abréviations : ps -F "< %u > %p %y : %a " le résultat sera : PID TT : COMMAND 34 pts/3 : ps -F r"< %u > %p %y : %a " Fichiers /etc/passwd Informations relatives à une ID utilisateur. /etc/ps_data Structure des données internes. /dev/pty* Noms des postes de travail (pty). /dev/tty* Noms des postes de travail (tty).