在Linux系统中,ps
和pid
是两个完全不同的概念,但它们都与进程管理相关。以下是它们的核心区别和联系:
pid
(进程标识符)pid
(Process ID)是系统为每个运行中的进程分配的唯一数字标识符(整数)。pid
在系统生命周期内是唯一的(用完会循环复用)。systemd
或init
)的pid
固定为1
。pid
通常与父进程的ppid
(Parent PID)关联。pid
可以精确操作特定进程(如终止进程kill -9 <pid>
)。pid
跟踪进程状态。ps
(进程状态命令)ps
(Process Status)是一个命令行工具,用于查看当前系统的进程信息。pid
、CPU/内存占用、启动命令、运行用户等。ps aux
或ps -ef
)。bash
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169896 13120 ? Ss Aug01 0:02 /sbin/init
PID
列就是进程的标识符。特性 | pid |
ps |
---|---|---|
本质 | 进程的唯一标识符(数字) | 查看进程信息的命令工具 |
用途 | 标识或操作进程(如kill 、nice ) |
监控、筛选、列出进程 |
依赖关系 | 是进程的属性之一 | 输出的信息中包含pid |
获取进程的pid
:
# 查看nginx进程的pid
pgrep nginx
# 或
pidof nginx
通过ps
查找pid
:
ps -ef | grep python # 查找所有Python进程及其pid
通过pid
操作进程:
kill -9 1234 # 终止pid为1234的进程
pid
是进程的唯一身份证号,而ps
是查看进程信息的“任务管理器”。ps
找到目标进程的pid
,再通过pid
对进程进行操作(如终止、调整优先级等)。