ps命令

ps:process status 进程状态
语法:

ps aux | grep xxx :查看系统中所有进程
ps -ef | grep xxx :可以查看父子进程之间的关系

选项 功能
-a 选择所有进程
-u 显示所有用户的所有进程
-x 不仅列出控制终端的进程,也列出所有无控制终端的进程
-j 表示列出与作业控制相关的信息

经验技巧

  • 如果想查看进程的CPU占用率和内存占用率,可以使用aux
  • 如果想查看进程的父进程ID可以使用-ef

示例:
ps命令
说明:

  • ps aux显示信息说明
  • USER:进程是由哪个用户产生的
  • PID:进程的ID号
  • %CPU:进程占用CPU资源的百分比,占用越高,进程越耗费资源;
  • %MEM:进程占用物理内存的百分比,占用越高,进程越耗费资源;
  • VSZ:进程占用虚拟内存的大小,单位KB;
  • RSS:进程占用实际物理内存的大小,单位KB;
  • TTY:进程是在哪个终端中运行的。其中tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
  • STAT:进程状态。常见的状态有:S-睡眠,s-表示包含子进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止,+表示位于后台等等
  • START:进程的启动时间
  • TIME:进程占用CPU的运算时间,注意不是系统时间
  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

示例:
ps命令
示例:利用ps -axj | more 查看所有用户的作业。
ps命令
其中:

  • PPID为1的进程:表示该进程为孤儿进程,即init进程,守护进程为孤儿进程
  • 凡是TPGID为-1的都是没有控制终端的进程,也就是守护进程。守护进程通常采用以d结尾的名字,表示Daemon。
  • 在COMMAND一列用[]括起来的名字表示内核线程,这些线程在内核中创建,没有用户空间代码,通常采用以k为开头的名字,表示Kernel。

示例:
ps命令
说明:

  • ps -ef显示信息说明
  • UID:用户ID
  • PID:进程ID
  • PPID:父进程ID
  • C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
  • STIME:进程启动的时间
  • TTY:完整的终端名称
  • TIME:CPU时间
  • CMD:启动进程所用的命令和参数