Process/Thread Model
Stopped:进程收到停止信号后停止运行
Ready:正在运行
Executing正在运行队列中等待
Uninterruptible sleep:不可终端指的不是CPU不响应外部硬件的中断,而是进程不响应异步信号
Interruptible sleep:等待某些事件的发生而被挂起
Zombie:进程已终止,但进程的进程控制块(以及少数资源)没被回收
程序优先级,数字越小,越优先,更优先获得运行的机会,获得更多的CPU运行时间
0-99:内核控制
100-139:用户可控制
nice值:优雅的,友好的,越小越优先
普通用户只能改大进程的nice值,不能改小
进程号:1-65535
init的进程号永远是1,是所有进程的父进程
ps:Process State
风格:
System V风格:选项要用到 -
BSD风格:选项不需用到 -
a:显示所有跟终端有关的进程
u:显示更详细的信息
x:所有与终端无关的进程
-elF:显示更详细的信息 -o PROPERYT1,PROPERTY2,...:指定要显示的属性字段
ps -o pid,ni ,默认只显示前台的进程,ps -axo pid,ni显示所有进程
ps查询中进程状态:
D:不可终端的睡眠
R:运行或就绪
S:可中断的睡眠
T:停止
Z:僵尸
<:高优先级进程
N:低优先级继承
+:前台进程组中的进程
l:多线程继承
s:会话进程的首进程
ps查询中COMMAND字段中加了中括号的表示内核中的线程
pgrep:显示特定条件下的进程pid
pgrep [OPTIONS] CONDITION
-l:同时显示进程和PID
-o:当同时匹配多个进程时,显示进程号最小的那个
-n:当同时匹配多个进程时,显示进程号最大的那个
pidof:显示特定进程的pid
top:实时监控进程的信息,默认根据cup百分比由大到小排序
-d #:指定刷新时长,单位为秒
-b:批模式,显示所有进程的信息
-n #:批模式的刷新次数
top的交互式命令:
M:根据驻留内存大小进行排序
P:根据CPU使用百分比进行排序
T: 根据累计时间进行排序
l: 是否显示平均负载和启动时间
t: 是否显示进程和CPU状态相关信息
m: 是否显示内存相关信息
c: 是否显示完整的命令行信息
q: 退出top
k: 终止某个进程
kill:给进程发送信号
kill [OPTION] PID
kill中的重要信号:
1:SIGHUP 让一个进程不用重启就可以重读配置文件,并让新的配置信息生效
2:SIGINT Ctrl+c 中断一个进程
9:SIGKILL 杀死一个进程,强行杀死
15:SIGTERM 终止一个进程,按正确流程终止,缺省选项
指定一个信号:
信号号码:kill -1
信号名称: kill -SIGKILL
信号名称简写:kill -KILL
注意:kill 只能接PID和%JOBID,killall 只能接 进程名
调整nice值:
调整已经启动的进程的nice值:
renice NI PID
在启动时指定nice值:
nice -n NI COMMAND
前台与后台
前台作业:占据了命令提示符
后台作业:启动之后,就释放命令提示符,后续的操作在后台完成
前台-->后台:
Ctrl+z:把正在前台的作业送往后台
COMMAND &:让命令在后台执行
jobs:查看后台的所有作业
bg:让后台的停止作业继续运行
[JOBID]:默认不加作业号执行有+的作业
fg:将后台的作业调回前台
[[%]JOBID]:默认不加作业号执行有+的作业
kill %JOBID:终止某作业
vmstat:显示虚拟内存的信息
# *:每个#秒刷新一次,刷新*次