Maison > Article > Opération et maintenance > Gestion des processus sous Linux - introduction à ps, pstree et autres commandes
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
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] ……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
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) ……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) ……
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 5389Notez 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 ……
kill, killall
Pour la gestion des processus, nous la gérons via le numéro de processus PID et un signal de signal.代号 | 名称 | 内容 |
1 | SIGHUP | 启动被终止的程序,可让该PID 重新读取自己的配置文件,类似重新启动 |
2 | SIGINT | 相当于用键盘输入[ctrl]-c 来中断一个程序的进行 |
9 | SIGKILL | 代表强制中断一个程序的进行 |
15 | SIGTERM | 以正常的结束程序来终止该程序。由于是正常的终止, 所以后续的动作会将他完成。该信号也是默认值,不加任何信号时,即表示使用该值。 |
19 | SIGSTOP | 相当于用键盘输入[ctrl]-z 来暂停一个程序的进行 |
# kill -15 4260 # killall -9 php-fpm # 注意,这样会杀死所有php-fpm进程
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!