1. 在 Linux 中,每一个程序都有一个自己的进程,每一个进程都有一个 id 号
  2. 每一个进程,都会有一个父进程
  3. 进程可以有两种存在方式:前台,后台
  4. 一般服务都是后台运行的,基本的程序都是前台运行的

查看进程 ps

查看当前系统中正在执行的各种进程信息

  • -A 列出所有的进程
  • -a 显示所有与终端相关的进程
  • -u 显示用户的所有进程
  • -x 显示后台运行进程

查看所有进程

ps -aux

显示信息说明

  • USER:该进程是由哪个用户产生的
  • PID:进程的ID号
  • %CPU:该进程占用 CPU 资源的百分比
  • %MEM:该进程占用物理内存的百分比
  • VSZ:该进程占用虚拟内存的大小,单位 KB
  • RSS:该进程占用实际物理内存的大小,单位 KB
  • TTY:该进程是在哪个终端中运行的。其中 tty1-tty7 代表本地控制台终端,tty1-tty6 是本地的字符界面终端,tty7 是图形终端,pts/0-255 代表虚拟终端。
  • STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
  • START:该进程的启动时间
  • TIME:该进程占用CPU的运算时间,注意不是系统时间
  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

显示所有进程信息,连同命令行

ps -ef

显示信息说明

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

查找指定进程

ps -aux | grep 进程关键字

可以看到父进程的信息

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

显示进程信息

ps -A

显示指定用户信息

ps -u root

查看进程树 pstree

  • -a 显示每个程序的完整指令,包含路径,参数或是常驻服务的标识
  • -p 显示父级 id
  • -u 显示用户名称

终止进程 kill

通过进程号杀死进程,-9 表示强迫进程立即停止

kill [-9] 进程号

通过进程名称杀死进程,也支持通配符,在系统因负载过大而变得很慢时很有用

killall 进程名称