云服务器
linux系统的ps,pstree命令是什么意思
2025-07-20 09:46  点击:0
如何查看和管理Linux进程

在Linux操作系统中,进程(Process)是正在运行的程序实例,它们是操作系统的基础。每个进程都有一个唯一的进程ID(PID),通过这个ID,我们可以管理和查看进程的状态。本文将介绍几个常用的命令来查看和管理进程,并解释父进程和子进程的概念,以及如何使用这些命令来维护服务器上的进程。

查看进程状态

- ps命令
- 使用ps命令可以查看当前bash环境中的进程情况。
shell
ps -lF
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

- 输出中的UID表示用户ID,PID表示进程ID,PPID表示父进程ID。

- ps aux
shell
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]

- ps aux可以查看所有进程,但没有列出父进程ID。

- ps -lA或ps -ef
shell
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
0 S 0 2 0 0 80 0 - 0 kthrea 00:00:00 kthreadd
0 S 0 3 2 0 80 0 - 0 smpboo 00:00:02 ksoftirqd/0

- 这些命令可以查看所有进程并显示父进程ID。

查看进程树

- pstree
shell
pstree -ups
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)
.
.
.

- pstree以树状结构列出所有进程及其关系,非常直观。

- pstree -p
shell
pstree -p 5389 -up
mysqld(5389,mysql)─┬─{mysqld}(5414)
├─{mysqld}(5415)
├─{mysqld}(5416)
.
.
.

- 通过进程名称可以找到特定进程的所有实例。

获取特定进程ID

- pidof
shell
pidof mysqld
5389

- pidof可以根据进程名称找到进程ID,但要注意可能会有多个相同名称的进程。