四、进程管理
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:进程id
PPID:父进程的id【只有使用ps -ef的时候才会有】
%CUP:cup占用率
%MEM:内存占用率
VSZ:占用虚拟内存【硬盘的分出内存】
RSS:占用实际内存大小
TTY:进程运行的终端,?:表示在本机打开的意思,如果时ssh远程则叫pts/0-n
START:进程启动时间
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:记录内核信息