Maison >interface Web >Tutoriel PS >Explication détaillée de la commande ps

Explication détaillée de la commande ps

高洛峰
高洛峰original
2016-12-29 14:33:031882parcourir

Nom : ps
Autorisation d'utilisation : tous les utilisateurs
Méthode d'utilisation : ps [options] [--help]
Description : Afficher la dynamique du parcours instantané (processus)
Paramètres : ps Il existe de nombreux paramètres, nous n'énumérons ici que quelques paramètres couramment utilisés et présentons brièvement leur signification
-A Liste tous les processus
-w L'élargissement de l'affichage peut afficher plus d'informations
-au Afficher des informations plus détaillées
-aux Affiche tous les voyages qui incluent d'autres utilisateurs

########################### ####### #######################

Paramètres communs :

-A Afficher tous les processus (équivalent à -e) ( utilitaire)
-a Afficher tous les processus pour un terminal sauf le responsable de session
-N Ignorer la sélection.
-d affiche tous les processus, mais omet tous les leads de session (utilitaires)
-x affiche les processus qui ne contrôlent pas le terminal et affiche les chemins spécifiques de chaque commande. dx ne peut pas être utilisé ensemble. (Utilitaire)
-p pid L'heure à laquelle le processus utilise le CPU
-u uid ou username Sélectionnez un identifiant ou un nom d'utilisateur valide
-g gid ou groupname Affiche tous les processus du groupe.
Le nom d'utilisateur U affiche tous les processus sous cet utilisateur et affiche le chemin détaillé de chaque commande. Par exemple : ps U zhang;(utility)
-f répertorie tous, généralement utilisés en conjonction avec d'autres options. Par exemple : ps -fa ou ps -fx et ainsi de suite.
-l Format long (avec des champs tels que F, wchan, C, etc.)
-j Format du travail
-o Défini par l'utilisateur format.
v Afficher au format mémoire virtuelle
s Afficher au format signal
-m Afficher tous les threads
-H Afficher le niveau de processus (combiné avec d'autres commandes, telles que : ps -Ha) (utilitaire )
e affiche l'environnement après la commande (comme : ps -d e; ps -a e) (utilitaire)
h n'affiche pas la première ligne

########## ## #############################################

Utilisation courante de la commande ps (pratique pour afficher les processus système)

1) ps a affiche tous les programmes sous le terminal actuel, y compris les programmes des autres utilisateurs.
2) ps -A affiche tous les processus.
3) Lorsque ps c répertorie les programmes, le véritable nom d'instruction de chaque programme est affiché, sans inclure le chemin, les paramètres ou l'identification des services résidents.
4) ps -e L'effet de ce paramètre est le même que la spécification du paramètre "A".
5) Lorsque ps e répertorie les programmes, affichez les variables d'environnement utilisées par chaque programme.
6) ps f utilise des caractères ASCII pour afficher la structure arborescente et exprimer la relation entre les programmes.
7) ps -H affiche une structure arborescente, indiquant la relation entre les programmes.
8) ps -N affiche tous les programmes, à l'exception des programmes sous le terminal qui exécutent la commande ps.
9) ps s utilise le format du signal du programme pour afficher l'état du programme.
10) ps S inclut des informations sur les sous-programmes interrompus lors de la liste des programmes.
11) ps -t Spécifiez le numéro du terminal et répertoriez l'état des programmes appartenant au terminal.
12) ps u Afficher l'état du programme dans un format orienté utilisateur.
13) ps x Affiche tous les programmes, non distingués par terminal.
La méthode la plus couramment utilisée est ps -aux, puis utilisez un symbole de tuyau pour demander à grep de trouver un processus spécifique, puis d'opérer sur le processus spécifique.

######################################### # #############

Exécutez ps aux pour obtenir les informations suivantes :

root:# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT HEURE DE DÉBUT COMMANDE
smmsp 3521 0.0 0.7 6556 1616 ? 00 gpm -m /dev/input/mice -t imps2
htt 3563 0.0 0.0 2956 196 ? Sl 20:41 0:00 htt_server -nodaemon
root 3574 0.0 0.4 5236 992 ? Ss 20:41 0:00 crond
xfs 3 617 0.0 1.3 13572 2804 ? démon
root 3627 0.0 0.2 3448 552 ? SNs 20:41 0:00 anacron -s
root 3636 0.0 0.1 2304 420 ? 1084 ? SSL 20:41 0:00 dbus-daemon-1 --system


En-tête :

USER Nom d'utilisateur
UID ID utilisateur (ID utilisateur)
Processus PID ID
PPID Parent Process ID
SID Session ID
%CPU Utilisation du processeur du processus
%MEM Utilisation de la mémoire du processus Taux
VSZ La taille de la mémoire virtuelle utilisée par le processus ( Taille virtuelle)
RSS La taille de l'ensemble résident utilisé par le processus ou la taille de la mémoire réelle, en Ko octets.
TTY Terminal (tty) associé au processus
STAT Statut du processus : L'état du processus est représenté par des caractères (code d'état de STAT)
R Runnable (en file d'attente d'exécution) En cours d'exécution ou dans la file d'attente d'exécution attendez.
S Dormir Dormir, bloqué, attendant qu'une certaine condition se forme ou reçoive un signal.
I Idle Idle
Z Zombie (un processus défunt) Le processus a été terminé, mais le descripteur de processus existe jusqu'à ce que le processus parent appelle l'appel système wait4() et soit libéré.
D Le mode veille ininterrompue (généralement IO) ne se réveille pas et ne peut pas s'exécuter lors de la réception d'un signal. Le processus doit attendre qu'une interruption se produise.
T Terminate Terminate Le processus s'arrête après avoir reçu les signaux SIGSTOP, SIGSTP, SIGTIN, SIGTOU.
P En attente des pages d'échange
W N'a pas de pages résidentes Il n'y a pas assez de pages mémoire à allouer.
Allocation de pagination du corps et réduction du leader du processus
en mémoire (il y a des processus enfants en dessous)
l multi-processus (en utilisant CLONE_THREAD, similaire aux pthreads NPTL)
Groupe de processus situé en arrière-plan
START Démarrage du processus Heure et date
TIME Temps CPU total utilisé par le processus
COMMAND Commande de ligne de commande en cours d'exécution
NI Priorité (Nice)
PRI Numéro de priorité du processus (Priorité)
WCHAN Le processus est en veille Le nom de la fonction du noyau est obtenu à partir du fichier /root/system.map.
FLAGS Identification numérique associée au processus

################################ # ########################

Exemple :
Afficher l'uid, le pid, la stat, le pri du processus système actuel, Trier par numéro UID.
ps -eo pid,stat,pri,uid –sort uid

Afficher l'utilisateur, pid, stat, rss, args du processus système actuel, trier par rss.
ps -eo utilisateur,pid,stat,rss,args – trier rss

########################### # #############################

ps nous fournit une vue unique du processus. la visualisation des résultats fournis n'est pas dynamique et continue ; si vous souhaitez surveiller le temps de processus, vous devez utiliser l'outil supérieur.


1. Description des paramètres de ps :

ps fournit de nombreux paramètres d'option, les suivants sont couramment utilisés :

l sortie au format long
u affiche les processus par ordre de nom d'utilisateur et d'heure de démarrage ;
j affiche les processus sous forme de tâche ;
f affiche les processus sous forme d'arborescence

a affiche tous les processus pour tous les utilisateurs (y compris les autres utilisateurs) ; ;
x affiche les processus sans contrôler le terminal ;
r affiche les processus en cours d'exécution
ww évite que les paramètres détaillés soient tronqués

Notre option couramment utilisée est la combinaison de aux ou lax, et le application du paramètre f.


2. Explication de la sortie ps aux ou lax :

Propriétaire du processus USER ;
ID du processus PID
Processus parent PPID ; CPU occupé par le processus ;
%MEM pourcentage de mémoire occupée
NI est la valeur NICE du processus. Des valeurs plus grandes signifient que moins de temps CPU est occupé
VSZ est la taille virtuelle du processus
RSS est le nombre de pages résidentes ; ID ;
STAT est l'état du processus (il existe les types suivants)
D est dans un état dormant qui ne peut pas être interrompu (généralement les processus IO
R sont en cours d'exécution et peuvent être mis en file d'attente ); >S est dans un état dormant ;
T est arrêté ou arrêté Suivi ;
W entre dans l'échange de mémoire (invalide depuis le noyau 2.6
X processus mort (jamais vu) ;

< Processus de haute priorité
N Processus avec une priorité inférieure
L Certaines pages sont verrouillées en mémoire
s Leader du processus (il y a des processus enfants en dessous
l) ; Multi-processus (utilisant CLONE_THREAD, similaire aux pthreads NPTL) ;
Groupe de processus situé en arrière-plan ;
Ressources de processus en attente WCHAN ;
Heure de démarrage du processus
TIME ; ;
Nom et paramètres de la commande COMMAND ;


3. Exemple d'application :

[root@localhost ~]# ps -aux |more
peut être connecté avec | tuyau et plus à voir dans les pages.
[root@localhost ~]# ps -aux > ps001.txt
Sortez les résultats dans le texte ps001.txt et enregistrez-le.
[root@localhost ~]# more ps001.txt
Ici, tous les processus sont affichés et sortis dans le fichier ps001.txt, puis visualisés en parcourant plus.


4. Kill termine (tue) le processus Il existe plus d'une douzaine de façons de contrôler le processus :
[root@localhost ~]#kill -. STOP [pid ]
L'envoi de SIGSTOP (17,19,23) arrête un processus sans le tuer.
[root@localhost ~]#kill -CONT [pid]
Envoyez SIGCONT (19,18,25) pour redémarrer un processus arrêté.
[root@localhost ~]#kill -KILL [pid]
Envoyez SIGKILL (9) pour forcer l'arrêt immédiat du processus et ne pas effectuer d'opérations de nettoyage.
[root@localhost ~]#kill -9 -1
Tuez tous les processus que vous possédez.
Les signaux SIGKILL et SIGSTOP ne peuvent pas être captés, bloqués ou ignorés, mais d'autres signaux le peuvent. C'est donc votre arme ultime.

######################################### # ##############

Utilisez la commande ps pour signaler le programme en cours d'exécution à l'administrateur :

Parfois, l'administrateur système ne se soucie que du programme actuel. système Quels programmes sont en cours d'exécution sur l'ordinateur, mais je ne veux pas savoir quels processus sont en cours d'exécution. Parce qu’une application peut devoir démarrer plusieurs processus. Dans les mêmes circonstances, le nombre de processus est bien supérieur à celui des programmes. Pour ce faire, du point de vue de la lecture, l'administrateur doit connaître les programmes spécifiques exécutés sur le système. Pour répondre à cette exigence, vous devez utiliser la commande ps pour vous aider.

1. La signification des résultats affichés par la commande ps.

Lorsque vous avez besoin de visualiser les programmes exécutés dans le système, bien que la commande ps ne soit pas la seule commande, c'est certainement la commande la plus fréquemment utilisée. Comme le montre la figure ci-dessous, il s'agit du résultat affiché après l'exécution de la commande ps.

Entrez la commande ps sur la ligne de commande pour afficher toutes les applications actuellement en cours d'exécution sur le système. Comme le montre la figure ci-dessus, si vous entrez la commande ps, les résultats affichés comprennent principalement quatre parties. Le premier est le PID, qui est le numéro d'identification du programme. Le système d'exploitation utilise ce numéro d'identification pour identifier l'application de manière unique, plutôt que d'utiliser des commandes pour l'identifier. Lorsque vous devez fermer de force une application, vous devez utiliser ce numéro PID. Suivi de TTY, ce champ indique le code du terminal utilisé par l'utilisateur. Pts indique que l'utilisateur se connecte à distance. Le troisième paramètre TIME représente le temps CPU consommé par ce programme. Notez que cette heure n'est pas l'heure à laquelle le programme commence à s'exécuter. Le dernier paramètre CMD représente le nom du programme.

2. Laissez le système rapporter des informations détaillées.

Lors de l'utilisation de la commande ps, si aucune option n'est utilisée, les informations affichées sont très limitées, et souvent seuls les programmes exécutés par l'utilisateur actuel sont affichés. Lorsque l'administrateur système a besoin de connaître des informations d'exécution plus détaillées d'une application, telles que l'utilisation de la mémoire et du processeur de l'application, certaines options doivent être ajoutées. Si l'administrateur système a besoin de visualiser les applications exécutées par d'autres utilisateurs, il doit utiliser l'option facultative -al après cette commande. Si cela est fait, le système répertoriera tous les programmes exécutés par tous les utilisateurs du système. Si vous souhaitez connaître l'utilisation du processeur et de la mémoire d'un certain programme, plutôt que d'afficher simplement son temps d'utilisation du processeur, vous devez ajouter le paramètre -l après cette commande. Autrement dit, à l'aide de la commande ps -l, le système peut afficher. l'application Informations détaillées sur l'exécution du programme. Si vous êtes intéressé par la signification de chaque champ ci-dessus, vous pouvez consulter l'aide correspondante. D'une manière générale, l'administrateur système ne se soucie que du numéro PID du programme, de l'utilisation de la mémoire et du processeur, du nom de la commande, du terminal utilisé par l'utilisateur, etc. Les autres informations ont moins de valeur pour les administrateurs système.

3. Vérifiez les programmes exécutés en arrière-plan.

Par défaut, la commande ps affiche uniquement les programmes exécutés au premier plan et non les programmes exécutés en arrière-plan. Mais tous les programmes ne s’exécutent pas au premier plan. Dans des circonstances normales, le nombre de programmes exécutés en arrière-plan est bien supérieur à celui des programmes exécutés en premier plan. Par exemple, de nombreux programmes du système lancés au démarrage du système d'exploitation s'exécutent en arrière-plan. Et parfois, les problèmes du système sont souvent causés par des programmes en arrière-plan. Les programmes courants tels que les chevaux de Troie sont exécutés en arrière-plan. Pour cette raison, les administrateurs système sont relativement plus intéressés à savoir quels programmes s'exécutent en arrière-plan.

Si vous souhaitez vérifier les programmes exécutés en arrière-plan, c'est un peu plus compliqué. Parce que dans différentes versions des systèmes d'exploitation Linux, les options utilisées pour afficher les processus en arrière-plan sont différentes. Par exemple, dans le système d'exploitation Red Hat Linux, cela se présente en fait sous la forme de paramètres plutôt que d'options. Autrement dit, vous pouvez utiliser la commande ps aux pour afficher toutes les applications (y compris le premier plan et l'arrière-plan). La principale différence entre les paramètres et les options est qu'il n'y a pas de symbole - devant. S'il porte ce symbole, cela signifie que c'est facultatif. Et s'il n'est pas inclus, cela signifie qu'il s'agit d'un paramètre. Ce symbole peut généralement être omis. Si la commande n'est pas écrite là où elle devrait l'être, ou si elle est ajoutée là où elle n'est pas nécessaire, le système affichera un message d'erreur indiquant que la commande est introuvable. Dans d'autres versions du système Linux, ce paramètre aux peut ne pas être reconnu. Par exemple, dans certaines versions du système d'exploitation Linux, l'option -a doit être utilisée pour effectuer cette tâche. En raison des différences entre les versions du système, cela pose beaucoup de problèmes aux administrateurs système. Heureusement, il existe une aide en ligne pour chaque version du système d'exploitation. Si l'administrateur système utilise une nouvelle version du système d'exploitation et ne sait pas quelle option utiliser pour afficher tous les processus, il peut utiliser des commandes telles que ps --heip pour afficher l'aide du système. Cependant, le seul inconvénient est que l'aide en ligne du système est entièrement en anglais, ce qui constitue un test important pour la maîtrise de l'anglais de l'administrateur système. Cependant, si vous souhaitez devenir administrateur système Linux, vous devez toujours avoir quelques compétences en anglais. Parce que la dernière technologie Linux a essentiellement une documentation en anglais. En fait, vous devez maîtriser les livres sur les systèmes d’exploitation les plus avancés. La plupart des livres informatiques sont en anglais.

4. Triez la liste des programmes.

Lorsque de nombreuses applications sont en cours d'exécution, l'administrateur système doit trier les applications. La fonction de tri de la commande Ps est relativement puissante. Principalement parce que cette commande possède un paramètre --sort (notez qu'il y a deux petites barres horizontales devant ce paramètre, les lecteurs ne doivent pas penser que l'auteur s'est trompé). Après ce paramètre, ajoutez le champ de tri souhaité par l'administrateur système et vous pourrez trier. Par exemple, cette commande ps –A --sort cmd signifie afficher toutes les applications du système et les trier en fonction des commandes du programme. Un autre problème concernant les paramètres du système d'exploitation Linux est que différentes lettres de casse des paramètres signifient souvent des significations différentes. Par exemple, dans la commande ci-dessus, si la lettre majuscule A est remplacée par le caractère minuscule a, le résultat sera complètement différent. Le caractère majuscule A désigne toutes les applications, tandis que le caractère minuscule a signifie « toutes avec tty sauf les chefs de session ». Il existe une différence essentielle entre les deux. Cette différence peut être utilisée pour filtrer les applications exécutées par différents comptes de connexion de terminal.

Dans la commande ps, de nombreux paramètres ont cette situation. Exécutez ps --help pour afficher tous les paramètres de cette commande, et vous pourrez voir qu'il existe de nombreuses situations similaires dans lesquelles une capitalisation différente signifie des significations différentes. Tels que le caractère majuscule O et le caractère minuscule o, le caractère majuscule U et le caractère minuscule u, etc. Ces différences rendent plus difficile pour les administrateurs système la maintenance du système d'exploitation. Il est souvent impossible pour les administrateurs système de comprendre autant de paramètres et les différences entre les majuscules et les minuscules des paramètres. En plus d'utiliser des paramètres plus couramment utilisés pour augmenter l'impression de valeur, les administrateurs système doivent également utiliser l'aide en ligne pour cette commande système. Cette aide système peut fournir des conseils en ligne aux administrateurs sur la manière d'utiliser les commandes système.

5. Signaler l'état d'exécution de programmes spécifiques.

Lorsque de nombreux programmes sont en cours d'exécution dans le système, le tri des noms de programmes peut aider les administrateurs à trouver les programmes qui les intéressent. Mais ce n’est toujours pas le moyen le plus simple. Par exemple, les administrateurs système découvrent désormais dans d'autres systèmes d'exploitation qu'un cheval de Troie appelé threadx s'exécute en arrière-plan du système. C'est pourquoi l'administrateur doit vérifier si le cheval de Troie est également exécuté sur d'autres ordinateurs. Comment gérer cela ? Utilisez la fonction de tri pour trier les noms des programmes (notez que vous ne triez pas les PID des programmes, car même si les programmes sont les mêmes, l'heure de démarrage est différente ou le nombre de programmes qui ont été démarrés dans le système d'exploitation est différent, le numéro PID est différent. En d'autres termes, ce numéro PID est généré automatiquement). Cela peut aider les administrateurs à accélérer dans une certaine mesure la découverte des programmes. Cependant, l'auteur estime que si les administrateurs système peuvent utiliser des commandes de requête telles que les caractères pipe et grep, ils pourront trouver plus rapidement les informations sur l'application dont ils ont besoin.

Si l'administrateur système utilise maintenant cette commande ps aux | grep "threadx", que se passera-t-il ? Tout d'abord, le système listera toutes les applications exécutées dans le système actuel (y compris celles exécutées au premier plan et en arrière-plan). Transmettez ensuite les résultats de sortie à la commande grep via le symbole pipe |. Ensuite, la commande grep recherchera des informations sur le programme threadx exécuté dans les résultats générés par la commande ps. Si c'est le cas, les informations de ce programme seront affichées dans la fenêtre et les informations en cours d'exécution d'autres applications seront filtrées. On peut voir que l'utilisation du caractère barre verticale combinée à d'autres commandes de requête peut aider les administrateurs système à trouver les informations sur les applications qu'ils souhaitent connaître dans les plus brefs délais.

peut également être combiné avec certains symboles spéciaux pour réaliser des fonctions plus responsables. S'il est utilisé conjointement avec la commande cat, le nombre de programmes qui remplissent les conditions peut être compté. Si vous ajoutez le symbole > après la commande, les résultats de sortie peuvent être localisés dans un fichier. S'il est utilisé en combinaison avec des caractères génériques, une classe de programmes répondant à des conditions spécifiques peut être interrogée. Par exemple, vous pouvez également interroger les informations d'exécution du programme parent d'un certain programme ou de ses sous-programmes, etc.

Fin

Pour des explications plus détaillées sur les commandes ps et les articles connexes, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn