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

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 字符串()分隔
cat /proc/[PID]/environ

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