Maison > Opération et maintenance > exploitation et maintenance Linux > Gestion des processus sous Linux - introduction à ps, pstree et autres commandes

Gestion des processus sous Linux - introduction à ps, pstree et autres commandes

齐天大圣
Libérer: 2020-10-10 13:12:19
original
2704 Les gens l'ont consulté

Le processus, comme son nom l'indique, est un programme en cours d'exécution. Le processus est l'unité d'exploitation de base du système d'exploitation. Chaque processus a un ID de processus unique, et nous gérons les processus via cet ID.

ps

Pour vérifier l'état d'exécution de chaque programme, utilisez la commande ps. Nous parlons ici des concepts de processus parent et de processus enfant. Les processus enfants sont dérivés des processus parents. Les processus sans processus parents sont appelés processus orphelins.

Affichez l'état du processus de l'environnement bash actuel :

# ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 43530 43528  0  80   0 - 28886 do_wai pts/0    00:00:00 bash
0 R     0 43552 43530  0  80   0 - 38336 -      pts/0    00:00:00 ps
Copier après la connexion

Ici, l'UID représente l'ID utilisateur, le PID représente l'ID du processus et le PPID représente l'ID du processus parent

<. 🎜>Afficher tous les statuts de processus ;

# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
……
root         2  0.0  0.0      0     0 ?        S    Sep29   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Sep29   0:02 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Sep29   0:00 [kworker/0:0H]
……
Copier après la connexion

Vous pouvez afficher tous les statuts de processus via ps aux, mais il ne répertorie pas l'ID du processus parent. Nous pouvons utiliser ps -lA ou ps -ef pour afficher tous les processus et afficher l'ID du processus parent.

[root@localhost ~]# ps -lA
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 47844 ep_pol ?        00:00:04 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0     3     2  0  80   0 -     0 smpboo ?        00:00:02 ksoftirqd/0
Copier après la connexion

pstree

Bien que ce qui précède tout afficher Le processus répertorie l'ID du processus parent, mais la relation entre les processus parent et enfant n'est pas claire en un coup d'œil. Nous pouvons utiliser pstree pour répertorier tous les processus sous forme d’arborescence de processus.

# pstree -up
systemd(1)─┬─BT-Panel(5462)───{BT-Panel}(5469)
           ├─BT-Task(5361)─┬─{BT-Task}(5375)
           │               ├─{BT-Task}(5376)
           │               ├─{BT-Task}(5377)
           │               ├─{BT-Task}(5381)
           │               ├─{BT-Task}(5382)
           │               └─{BT-Task}(5390)
……
Copier après la connexion

Vous pouvez également afficher le nombre de processus pour un processus spécifique.

# pstree -p 5389 -up
mysqld(5389,mysql)─┬─{mysqld}(5414)
                   ├─{mysqld}(5415)
                   ├─{mysqld}(5416)
……
Copier après la connexion

pidof

Affichez le numéro d'identification du processus par le nom du processus. Par exemple, si je veux connaître l'ID du processus mysqld, je peux le vérifier via la commande pidof.

# pidof mysqld
5389
Copier après la connexion

Notez qu'il peut y avoir plusieurs noms de processus identiques sur le serveur, donc plus d'un ID de processus sera trouvé via pidof.

# pidof php-fpm
42609 41610 41588 ……
Copier après la connexion

kill, killall

Pour la gestion des processus, nous la gérons via le numéro de processus PID et un signal de signal.

代号名称内容
1SIGHUP启动被终止的程序,可让该PID 重新读取自己的配置文件,类似重新启动
2SIGINT相当于用键盘输入[ctrl]-c 来中断一个程序的进行
9SIGKILL代表强制中断一个程序的进行
15 SIGTERM以正常的结束程序来终止该程序。由于是正常的终止, 所以后续的动作会将他完成。该信号也是默认值,不加任何信号时,即表示使用该值。
19 SIGSTOP相当于用键盘输入[ctrl]-z 来暂停一个程序的进行
La différence entre kill et killall est que kill gère les processus via des ID de processus, tandis que killall gère les processus via des noms de processus.


# kill -15 4260
# killall -9 php-fpm  # 注意,这样会杀死所有php-fpm进程
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal