四、进程管理

1、查看指令路径

  1. which 指令

2、静态查看进程信息:ps

  1. ps -a # 显示现行终端机下的所有程序
  2. ps -u # 以用户为主的格式来显示程序状况
  3. ps -x # 不以终端机来区分
  4. ps -aux # 通常三个参数一起配置,显示所有程序
  5. ps -ef # 查看所有进程,并显示父子程序关系
  6. # -aux是BSD风格,-ef是System V风格。
  7. #这是次要的区别,一个影响使用的区别是aux会截断command列,而-ef不会。当结合grep时这种区别会影响到结果。

ps -aux 可不加-,直接ps aux,也会一样的显示

  1. USER:进程所属的用户名
  2. PID:进程id
  3. PPID:父进程的id【只有使用ps -ef的时候才会有】
  4. %CUP:cup占用率
  5. %MEM:内存占用率
  6. VSZ:占用虚拟内存【硬盘的分出内存】
  7. RSS:占用实际内存大小
  8. TTY:进程运行的终端,?:表示在本机打开的意思,如果时ssh远程则叫pts/0-n
  9. START:进程启动时间
  10. STAT:进程的状态
  11. TIME:进程占用cpu的总时长
  12. COMMAND:进程的路径【所在位置】

3、进程的状态

状态 功能描述
R running运行状态
S sleep睡眠状态【不在运行,但或者】
Z zombie僵死状态【要死不死的状态】
T stoppeed停止状态
D uninterruptible sleep (usually IO) 不可中断状态

+号表示前台进程,在显示的进程

4、按指定的内容和顺序进行查看

1、CPU降序查看所有进程
  1. ps aux --sort -%cpu
  2. # -%cpu:以降序的方式查看,没有“-”号就是升序

2、自定义显示进程的信息

自定义显示列:ps axo 列1,列2,…,列n

  1. ps axo 需要显示的信息名字
  2. ps axo user,pid,ppid,%mem,command | haed -3
  3. # 只显示 user pid ppid %mem command 的前三行

5、查看动态进程信息:top

(1)前五行统计信息

第1行:top - 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30

第1行是任务队列信息,其参数如下:

内容 含义
05:43:27 表示当前时间
up 4:52 系统运行时间 格式为时:分
2 users 当前登录用户数
load average: 0.58, 0.41, 0.30 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第2行:Tasks: 159 total, 1 running, 158 sleeping, 0 stopped, 0 zombie

第3行:%Cpu(s): 37.0 us, 3.7 sy, 0.0 ni, 59.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

第2、3行为进程和CPU的信息

当有多个CPU时,这些内容可能会超过两行,其参数如下:

内容 含义
159 total 进程总数
1 running 正在运行的进程数
158 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
37.0 us 用户空间占用CPU百分比
3.7 sy 内核空间占用CPU百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
59.3 id 空闲CPU百分比
0.0 wa 等待输入输出的CPU时间百分比
0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0 si 软中断(Software Interrupts)占用CPU的百分比
0.0 st

第4行:KiB Mem: 1530752 total, 1481968 used, 48784 free, 70988 buffers

第5行:KiB Swap: 3905532 total, 267544 used, 3637988 free. 617312 cached Mem

第4、5行为内存信息,其参数如下:

内容 含义
KiB Mem: 1530752 total 物理内存总量
1481968 used 使用的物理内存总量
48784 free 空闲内存总量
70988 buffers(buff/cache) 用作内核缓存的内存量
KiB Swap: 3905532 total 交换区总量
267544 used 使用的交换区总量
3637988 free 空闲交换区总量
617312 cached Mem 缓冲的交换区总量。
3156100 avail Mem 代表可用于进程下一次分配的物理内存数量

(2)top内常用指令
命令 功能
>/< 向后翻页/向前翻页【指向哪往哪边翻页】
shift+p 按CPU占有率降序排序
shift+n 按UID降序排序
shift+m 按内存的使用率排序
u+用户名 监控的指定用户进程
k+进程ID 终止指定进程ID的进
shift+, 升序显示进程
q 退出top

(3)top常用参数:
参数 功能
-d n 每n秒钟刷新一次
-p uid 查看指定的UID进程

6、进程控制

kill [-参数,默认参数是15 ]进程id 杀死进程

(1)常用参数:
参数 功能
1【SIGHUP】 重新加载配置
2【SIGINT】 键盘中断ctrl+c】
3【SIGQUIT】 键盘退出ctrl+\,类似SIGINT
9【SIGKILL】 强制终止,无条件
15【SIGTERM】 正常结束,缺省信号
18【SIGCONT】 继续
19【SIGSTOP】 暂停
20【SIGTSTP】 键盘暂停ctrl+z

(2)、查看内存及使用情况
  1. free [-参数]
  2. -k:以KB显示内存详情
  3. -m:以MB显示内存详情
  4. -g:以GB显示内存详情

7、进程优先级nice

(1)简介

系统中优先级分为两种:

  1. 第一种:RT
  2. 第二种:nice

NI:实际nice值(优先级最多到0)

    RP(+20):将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39

sleep 数字————使系统休眠,不执行任何操作,ctrl+c 终止,sleep 3 —停止3秒

(2)设置nice值
nice -n 优先级 指令        # 在程序没启动的时候设置,还没有这个程序时使用
现有进程的NI:renice 优先级 PID        # 在程序启动后设置

8、作业控制【也叫后台运行】

(1)将进程调到后台:指令 &

(2)查看后台进程:jobs

(3)将进程从后台调到前台:fg 后台进程号 ctrl+z 可以把前台程序放到后台去,暂停程序的意思

(4)启动后台进程执行:bg 后台进程号

(5)杀死后台进程:kill %后台进程号 # 一定要注意加%

9.虚拟文件系统:

/proc,利用内存仿真

(1)/proc/cpuinfo:记录cpu信息

(2)/proc/meminfo:记录内存信息

(3)/proc/cmdline:记录内核信息