Maison > Article > interface Web > Une commande Linux au quotidien : la commande ps
La commande ps sous Linux est l'abréviation de Process Status. La commande ps est utilisée pour répertorier les processus actuellement en cours d'exécution sur le système. La commande ps répertorie les instantanés des processus en cours, qui sont les processus au moment où la commande ps est exécutée. Si vous souhaitez afficher dynamiquement les informations sur le processus, vous pouvez utiliser la commande top.
Pour surveiller et contrôler le processus, vous devez d'abord comprendre la situation du processus en cours, c'est-à-dire que vous devez visualiser le processus en cours, et la commande ps est la commande de visualisation de processus la plus basique et également la plus puissante. . Utilisez cette commande pour déterminer quels processus sont en cours d'exécution et leur état d'exécution, si le processus est terminé, s'il est mort, quels processus occupent trop de ressources, etc. Bref, la plupart des informations peuvent être obtenues en exécutant cette commande.
ps nous fournit une vue unique du processus, mais les résultats de la vue qu'il fournit ne sont pas dynamiques et continus ; si vous souhaitez surveiller le temps du processus, vous devez utiliser l'outil supérieur.
La commande kill est utilisée pour tuer le processus.
Le processus sous Linux a 5 états :
1. En cours d'exécution (en cours d'exécution ou en attente dans la file d'attente d'exécution)
2. (en veille, bloqué, en attente de la formation d'une certaine condition ou de la réception d'un signal)
3. Sans interruption (ne se réveille pas et ne peut pas fonctionner lors de la réception d'un signal, le processus doit attendre qu'une interruption se produise)
4. Zombie (le processus est terminé, mais le descripteur de processus existe jusqu'à ce que le processus parent appelle l'appel système wait4() et soit libéré)
5. Stop (le processus reçoit SIGSTOP, SIGSTP. , SIGTIN, SIGTOU signaux Arrêter de fonctionner après l'exécution)
Les 5 codes d'état du processus d'identification de l'outil ps :
D veille ininterrompue (généralement IO)
R run runnable (dans la file d'attente d'exécution)
S interrompre le sommeil
T arrêter tracé ou arrêté
Z zombie un processus défunt ("zombie")
1. Format de commande :
ps[paramètre]
2. Fonction de commande :
est utilisée pour afficher l'état du processus en cours
3. Paramètres de la commande :
a Afficher tous les processus
-a Afficher tous les programmes sous le même terminal
-A Afficher tous les processus
c Afficher le véritable statut du processus Nom
-N sélection inversée
-e est égal à "-A"
e affiche les variables d'environnement
f affiche la relation entre programmes
-H Afficher l'arborescence
r Afficher les processus du terminal actuel
T Afficher tous les programmes du terminal actuel
u Tous les processus de l'utilisateur spécifié
-au Affiche des informations plus détaillées
-aux Affiche toutes les planifications qui incluent d'autres utilisateurs
-Cc21d5b2dbf788dd07eb92dd26e84b7aa >
- -lines50e5801db80c300962b8b99eeda30d9c Nombre de lignes affichées sur chaque page--widthcbce289de30c745bfa56a9127ce3879a Nombre de caractères affichés sur chaque page--aide Affichage informations d'aide--version Afficher l'affichage de la version4. Exemple d'utilisation : Exemple 1 : Afficher toutes les informations sur le processusCommande : ps -ASortie :[root@localhost test6]# ps -A PID TTY TIME CMD 1 ? 00:00:00 init 2 ? 00:00:01 migration/0 3 ? 00:00:00 ksoftirqd/0 4 ? 00:00:01 migration/1 5 ? 00:00:00 ksoftirqd/1 6 ? 00:29:57 events/0 7 ? 00:00:00 events/1 8 ? 00:00:00 khelper 49 ? 00:00:00 kthread 54 ? 00:00:00 kblockd/0 55 ? 00:00:00 kblockd/1 56 ? 00:00:00 kacpid 217 ? 00:00:00 cqueue/0 ……省略部分结果Description : Exemple 2 : Afficher les informations utilisateur spécifiéesCommande : ps -u rootSortie :
[root@localhost test6]# ps -u root PID TTY TIME CMD 1 ? 00:00:00 init 2 ? 00:00:01 migration/0 3 ? 00:00:00 ksoftirqd/0 4 ? 00:00:01 migration/1 5 ? 00:00:00 ksoftirqd/1 6 ? 00:29:57 events/0 7 ? 00:00:00 events/1 8 ? 00:00:00 khelper 49 ? 00:00:00 kthread 54 ? 00:00:00 kblockd/0 55 ? 00:00:00 kblockd/1 56 ? 00:00:00 kacpid ……省略部分结果Description : Exemple 3 : Afficher toutes les informations sur le processus, ainsi que la ligne de commande Commande : ps -efSortie :
[root@localhost test6]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Nov02 ? 00:00:00 init [3] root 2 1 0 Nov02 ? 00:00:01 [migration/0] root 3 1 0 Nov02 ? 00:00:00 [ksoftirqd/0] root 4 1 0 Nov02 ? 00:00:01 [migration/1] root 5 1 0 Nov02 ? 00:00:00 [ksoftirqd/1] root 6 1 0 Nov02 ? 00:29:57 [events/0] root 7 1 0 Nov02 ? 00:00:00 [events/1] root 8 1 0 Nov02 ? 00:00:00 [khelper] root 49 1 0 Nov02 ? 00:00:00 [kthread] root 54 49 0 Nov02 ? 00:00:00 [kblockd/0] root 55 49 0 Nov02 ? 00:00:00 [kblockd/1] root 56 49 0 Nov02 ? 00:00:00 [kacpid] ……省略部分结果Instructions : Exemple 4 : Combinaisons couramment utilisées de ps et grep pour rechercher des processus spécifiques Commande : ps -ef|grep ssh
Sortie :
[root@localhost test6]# ps -ef|grep ssh root 2720 1 0 Nov02 ? 00:00:00 /usr/sbin/sshd root 17394 2720 0 14:58 ? 00:00:00 sshd: root@pts/0 root 17465 17398 0 15:57 pts/0 00:00:00 grep sshExplication : Exemple 5 : Répertoriez le PID et les informations associées qui vous appartiennent actuellement pour cette connexion Commande :
ps -lSortie :
[root@localhost test6]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 17398 17394 0 75 0 - 16543 wait pts/0 00:00:00 bash 4 R 0 17469 17398 0 77 0 - 15877 - pts/0 00:00:00 psExplication : La signification de chaque information associée : F représente le drapeau de ce programme (drapeau), 4 signifie que l'utilisateur est super utilisateurS représente l'état de ce programme (STAT), la signification de chaque STAT sera introduite dans le texteUID Le programme est appartenant à l'UIDPID est l'ID de ce programme ! PPID est l'ID de son programme parent supérieurPourcentage de ressources CPU C utiliséPRI est l'abréviation de Priority (Priority Execution Order), qui sera présenté en détail plus tardNI est la valeur Nice. Nous continuerons à la présenter dans la section suivante ADDR est la fonction du noyau, indiquant dans quelle partie de la mémoire se trouve le programme. S'il s'agit d'un programme en cours d'exécution, il s'agit généralement de "-"SZ La taille de la mémoire utiliséeWCHAN Le programme est-il actuellement en cours d'exécution ? S'il s'agit de -, cela signifie qu'il est en cours d'exécution
TTY L'emplacement du terminal de l'utilisateur connectéTIME Le temps CPU utilisé. Pourquoi la commande est-elle émise par CMD
实例6:列出目前所有的正在内存当中的程序
命令:
ps aux
输出:
[root@localhost test6]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 10368 676 ? Ss Nov02 0:00 init [3] root 2 0.0 0.0 0 0 ? S< Nov02 0:01 [migration/0] root 3 0.0 0.0 0 0 ? SN Nov02 0:00 [ksoftirqd/0] root 4 0.0 0.0 0 0 ? S< Nov02 0:01 [migration/1] root 5 0.0 0.0 0 0 ? SN Nov02 0:00 [ksoftirqd/1] root 6 0.0 0.0 0 0 ? S< Nov02 29:57 [events/0] root 7 0.0 0.0 0 0 ? S< Nov02 0:00 [events/1] root 8 0.0 0.0 0 0 ? S< Nov02 0:00 [khelper] root 49 0.0 0.0 0 0 ? S< Nov02 0:00 [kthread] root 54 0.0 0.0 0 0 ? S< Nov02 0:00 [kblockd/0] root 55 0.0 0.0 0 0 ? S< Nov02 0:00 [kblockd/1] root 56 0.0 0.0 0 0 ? S< Nov02 0:00 [kacpid] ……省略部分结果
说明:
USER:该 process 属于那个使用者账号的
PID :该 process 的号码
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process 所占用的物理内存百分比
VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
RSS :该 process 占用的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有
R :该程序目前正在运作,或者是可被运作
S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
T :该程序目前正在侦测或者是停止了
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
START:该 process 被触发启动的时间
TIME :该 process 实际使用 CPU 运作的时间
COMMAND:该程序的实际指令
实例7:列出类似程序树的程序显示
命令:
ps -axjf
输出:
[root@localhost test6]# ps -axjf Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 0 1 1 1 ? -1 Ss 0 0:00 init [3] 1 2 1 1 ? -1 S< 0 0:01 [migration/0] 1 3 1 1 ? -1 SN 0 0:00 [ksoftirqd/0] 1 4 1 1 ? -1 S< 0 0:01 [migration/1] 1 5 1 1 ? -1 SN 0 0:00 [ksoftirqd/1] 1 6 1 1 ? -1 S< 0 29:58 [events/0] 1 7 1 1 ? -1 S< 0 0:00 [events/1] 1 8 1 1 ? -1 S< 0 0:00 [khelper] 1 49 1 1 ? -1 S< 0 0:00 [kthread] 49 54 1 1 ? -1 S< 0 0:00 \_ [kblockd/0] 49 55 1 1 ? -1 S< 0 0:00 \_ [kblockd/1] 49 56 1 1 ? -1 S< 0 0:00 \_ [kacpid]
说明:
实例8:找出与 cron 与 syslog 这两个服务有关的 PID 号码
命令:
输出:
[root@localhost test6]# ps aux | egrep '(cron|syslog)' root 2682 0.0 0.0 83384 2000 ? Sl Nov02 0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5 root 2735 0.0 0.0 74812 1140 ? Ss Nov02 0:00 crond root 17475 0.0 0.0 61180 832 pts/0 S+ 16:27 0:00 egrep (cron|syslog) [root@localhost test6]#
说明:
其他实例:
1. 可以用 | 管道和 more 连接起来分页查看
命令:
ps -aux |more
2. 把所有进程显示出来,并输出到ps001.txt文件
命令:
ps -aux > ps001.txt
3. 输出指定的字段
命令:
ps -o pid,ppid,pgrp,session,tpgid,comm
输出:
[root@localhost test6]# ps -o pid,ppid,pgrp,session,tpgid,comm PID PPID PGRP SESS TPGID COMMAND 17398 17394 17398 17398 17478 bash 17478 17398 17478 17398 17478 ps [root@localhost test6]#
更多每天一个linux命:ps命令相关文章请关注PHP中文网!