Linux查看进程信息——ps指令/proc文件

本文介绍了Linux系统中如何使用ps指令查看进程详细信息,包括各种选项的用法,以及如何通过/proc文件系统获取进程状态、命令行和环境变量等深层次信息。还演示了如何结合grep筛选特定进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux查看进程信息——ps指令/proc文件

ps指令

  在Ubuntu(以及其他类Unix系统)中,ps(Process Status)是一个用于显示当前运行进程信息的命令。

  • -e:显示所有进程,而不仅仅是当前用户的进程;
  • -f:显示完整的进程信息,包括:UID(进程所有者的用户ID)、PID(进程ID)、PPID(父进程ID,表示启动该进程的父进程ID)、C(CPU使用的百分比)、STIME(进程启动的时间(起始时间))、TTY(进程关联的终端类型)、TIME(进程占用CPU的总时间)、CMD(启动进程时使用的命令);
  • -u:以用户为中心的格式显示进程信息,可以用于指定显示哪个用户;
  • -l:显示长格式的输出,包括更多的列,如F(进程标记)、S(状态)、PRI(优先级)、NI(Nice值)、RSS(实际内存大小)等;
  • -o:以自定义格式显示进程信息;
  • --forest:以树状结构显示进程;

不同方法可以实现组合,例如

# 显示所有进程的详细信息
ps -ef
# 以树状结构显示root用户的所有进程信息
ps -u root -f --forest
# 以指定输出格式显示root用户所有进程信息,包括PID、用户、命令、CPU使用率和内存使用率
ps -u root -o pid,user,cmd,%cpu,%mem

注:

  • 可以使用grep来筛选出包含特定进程名称的进程信息,例如:
ps -ef | grep 进程ID

这行指令的作用相当于:得到所有进程的详细信息(通过-ef实现),并且筛选出包含特定进程ID的进程信息(通过grep实现),最终显示到终端。

proc文件夹

  /proc 文件系统是一个虚拟的文件系统,提供了关于系统内核、进程和硬件设备的信息。在Linux系统中,/proc 目录是一个重要的系统目录,它允许用户和系统管理员通过查看和操作文件来获取关于系统状态和内核参数的实时信息。

  • 利用ll方法可以查看文件信息,其中cwd指向脚本地址,exe指向可执行文件的地址,在利用深度学习训练模型中,cwd指向代码地址、exe指向环境地址;
  • /proc/[PID]/cmdline:包含启动进程的完整命命令行
cat /proc/[PID]/cmdline
  • /proc/[PID]/status:包含有关进程的详细状态信息,如进程ID、父进程ID、用户ID、进程状态、内存使用等等
cat /proc/[PID]/status
  • /proc/[PID]/environ:包含进程环境变量的值,以 null 字符串(\0)分隔
cat /proc/[PID]/environ

文章若有问题,欢迎指正,转载请注明来源。

### 如何在 Linux查看进程 PID 的方法 在 Linux 系统中,可以通过多种方式查看正在运行的进程及其对应的 PID(Process Identifier)。以下是常用的方法: #### 使用 `ps` 命令 `ps` 是最基础也是最常见的用于显示当前进程状态的命令。通过特定选项可以筛选出目标进程的 PID。例如,要查找名为 `java` 的进程 ID 可以使用以下命令: ```bash ps aux | grep java ``` 上述命令会列出所有包含关键字 `java` 的进程信息,其中包括用户的名称、CPU 和内存占用情况以及最重要的 PID 列表[^1]。 #### 结合 `pgrep` 或 `pids` 工具 如果知道确切的服务名或者程序名,则可以直接利用专门设计来定位指定服务对应 PIDs 的工具——`pgrep` 来简化操作流程。 ```bash pgrep java ``` 这条指令仅返回匹配到的第一个符合条件的 Java 进程编号[^2]。 #### 利用 `/proc` 文件系统 每一个活跃中的进程都在 /proc 下面拥有自己独立目录结构形式表示出来,其名字正好就是该进程自身的 PID 数字串。因此我们也可以遍历整个 procfs 寻找感兴趣的项目。 ```bash ls /proc/[0-9]* ``` 这将展示所有的数字命名文件夹,实际上也就是全部现存进程号列表[^3]。 另外需要注意的是,在实际应用过程中可能会遇到某些特殊场景下的限制条件比如当系统的 pid_max 达到了预设界限之后就无法再继续分配新的进程标识码给新生出来的子任务们了。此时就需要调整内核参数重新定义允许的最大范围值[^4]。 ```bash echo 65536 > /proc/sys/kernel/pid_max sysctl -w kernel.pid_max=65536 ``` 以上就是在不同情况下适用于查询 linux 平台下任意类型应用程序实例所关联起来的那个独一无二的身份标签—PID的具体做法汇总说明文档啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉萌新、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值