1,什么是程序,什么是进程
程序:放置在存储媒体中(如硬盘,光盘,软盘,磁带等),为实体文件的形态存在。
进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存的单元一个识别码(PID),可以说,进程就是一个正在运行中的程序。
2,进程状态:
R(Running) | 该程序正在运行中 |
---|---|
S (sleep) | 该程序目前正在睡眠状态(idle),但可以被唤醒(signal). |
D | 不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况 |
T | 停止状态(stop),可能是在工作控制(背景暂停)或出错(traced)状态 |
Z (zombie) | 僵尸状态,程序已经终止但无法被移出至内存外 |
3,查看进程
1)图形方式查看:
输入命令:gnome-system-monitor
2)进程查看命令:
ps -A :查看所有进程
ps -a :查看当前环境中运行的进程,不包含环境信息
ps -u :显示进程用户信息
ps a :查看在当前环境中运行的进程
ps x :列出系统中所有运行包含tty输出设备
ps f :显示进程的父子关系
注:Ss是S的父级,s表示顶级进程。
ps e :显示进程的详细信息(系统资源的调用)
ps常用组合:
ps aux :显示系统中所有进程并显示进程用户
ps ef :显示进程详细信息并显示进程父子关系
ps ax :显示当前系统中的所有进程
pstree :显示当前系统的进程数
##显示进程指定信息的命令##
ps -o XXX | 显示进程的指定信息 |
---|---|
ps comm | 显示进程名称 |
ps user | 显示进程所有人 |
ps group | 显示进程所有组 |
ps %cpu | 显示进程cpu 使用率 |
ps %mem | 显示进程内存使用率 |
ps pid | 显示进程id |
ps nice | 显示进程优先级 |
在shell中输入:ps -o comm,user,group,%cpu,同时查询进程名称,进程所有人,进程所有组,进程cpu使用率
在shell中输入:ps -o %mem,pid,nice,同时查询进程内存使用率,进程id,进程优先级。
##进程排序命令##
ps ax --sort=+%cpu|%-cpu
ps ax --sort=+%mem|%-mem
##stat中显示的信息##
S | 进程状态 |
---|---|
l | 内存中有锁定空间 |
N | 优先级低 |
< | 优先级高 |
+ | 前台运行 |
s | 顶级进程 |
在上述图片的“STAT”这一列,就是显示的每个进程的状态信息。
3,进程优先级
1)进程的优先级范围:-20~19
2)优先级查看命令:ps ax -o pid,nice,comm
3)指定某个优先级开启进程:
nice -n 优先级数字 | 进程名称 |
---|---|
nice -n -5 vim & | 开启vim并且指定程序优先级为-5 |
4)改变进程优先级
renice -n 优先级数字 | 进程pid |
---|---|
renice -n -6 10125 | 改变10125进程的优先级为 -6 |
4,环境中进程的前后台调用
jobs| :查看被打入环境后台的进程
ctrl+z | 把占用终端的进程打入后台 |
---|---|
fg jobsnum | 把后台进程调回前台 |
bg jobsnum | 把后台进程调回前台 |
omm & | 让命令直接在后台运行 |
5,进程信号
1)常用信号等级
1 | 进程重新加载配置 |
---|---|
2 | 删除进程在内内存中的数据 |
3 | 删除鼠标在内存中喔咕的数据 |
9 | 强行结束单个进程(不能被阻塞) |
15 | 正常关闭进程(可能被阻塞) |
18 | 运行暂停的进程 |
19 | 暂停某个进程(不能被阻塞) |
20 | 把进程打入后台(可以被阻塞) |
man 7 signal | 查看信号详细信息 |
使用以上命令的方式:
kill -信号 进程pid
killall -信号 进程名字
pkill -u student -信号