四、进程管理
1、查看指令路径
which 指令
2、静态查看进程信息:ps
ps -a # 显示现行终端机下的所有程序ps -u # 以用户为主的格式来显示程序状况ps -x # 不以终端机来区分ps -aux # 通常三个参数一起配置,显示所有程序ps -ef # 查看所有进程,并显示父子程序关系# -aux是BSD风格,-ef是System V风格。#这是次要的区别,一个影响使用的区别是aux会截断command列,而-ef不会。当结合grep时这种区别会影响到结果。
ps -aux 可不加-,直接ps aux,也会一样的显示
USER:进程所属的用户名PID:进程idPPID:父进程的id【只有使用ps -ef的时候才会有】%CUP:cup占用率%MEM:内存占用率VSZ:占用虚拟内存【硬盘的分出内存】RSS:占用实际内存大小TTY:进程运行的终端,?:表示在本机打开的意思,如果时ssh远程则叫pts/0-nSTART:进程启动时间STAT:进程的状态TIME:进程占用cpu的总时长COMMAND:进程的路径【所在位置】
3、进程的状态
| 状态 | 功能描述 |
|---|---|
| R | running运行状态 |
| S | sleep睡眠状态【不在运行,但或者】 |
| Z | zombie僵死状态【要死不死的状态】 |
| T | stoppeed停止状态 |
| D | uninterruptible sleep (usually IO) 不可中断状态 |
+号表示前台进程,在显示的进程
4、按指定的内容和顺序进行查看
1、CPU降序查看所有进程
ps aux --sort -%cpu# -%cpu:以降序的方式查看,没有“-”号就是升序
2、自定义显示进程的信息
自定义显示列:ps axo 列1,列2,…,列n
ps axo 需要显示的信息名字ps axo user,pid,ppid,%mem,command | haed -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)、查看内存及使用情况
free [-参数]-k:以KB显示内存详情-m:以MB显示内存详情-g:以GB显示内存详情
7、进程优先级nice
(1)简介
系统中优先级分为两种:
第一种:RT值第二种: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:记录内核信息
