插件窝 干货文章 linux中ps和pid有什么不一样

linux中ps和pid有什么不一样

进程 pid 标识符 通过 297    来源:    2025-04-16

在Linux系统中,pspid是两个完全不同的概念,但它们都与进程管理相关。以下是它们的核心区别和联系:


1. pid(进程标识符)

  • 定义pid(Process ID)是系统为每个运行中的进程分配的唯一数字标识符(整数)。
  • 特点
    • 每个进程的pid在系统生命周期内是唯一的(用完会循环复用)。
    • 系统启动后的第一个进程(如systemdinit)的pid固定为1
    • 子进程的pid通常与父进程的ppid(Parent PID)关联。
  • 用途
    • 通过pid可以精确操作特定进程(如终止进程kill -9 <pid>)。
    • 在脚本或程序中通过pid跟踪进程状态。

2. ps(进程状态命令)

  • 定义ps(Process Status)是一个命令行工具,用于查看当前系统的进程信息
  • 功能
    • 列出进程的详细信息,包括pid、CPU/内存占用、启动命令、运行用户等。
    • 支持多种选项过滤和格式化输出(如ps auxps -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
本质 进程的唯一标识符(数字) 查看进程信息的命令工具
用途 标识或操作进程(如killnice 监控、筛选、列出进程
依赖关系 是进程的属性之一 输出的信息中包含pid

常见用法示例

  1. 获取进程的pid

    # 查看nginx进程的pid
    pgrep nginx
    # 或
    pidof nginx
    
  2. 通过ps查找pid

    ps -ef | grep python  # 查找所有Python进程及其pid
    
  3. 通过pid操作进程

    kill -9 1234  # 终止pid为1234的进程
    

总结

  • pid是进程的唯一身份证号,而ps是查看进程信息的“任务管理器”。
  • 二者通常结合使用:先用ps找到目标进程的pid,再通过pid对进程进行操作(如终止、调整优先级等)。