进程及作业管理
Uninterruptible sleep: 不可中断的睡眠
Interruptible sleep:可中断睡眠
COW: copy on write写时复制
VSZ: 虚拟内存集
RSS: 常驻内存集
100-139:用户可控制
nice值:优雅的
-20 ~ -19
100 ~ 139
普通用户仅能调高进程的nice值
超级用户随意调高低
0-99:内核调整
在/proc文件下,可以看到很多进程号
init:进程号只能为1,第一个进程
大O标准
O(1)
O(n)
O(logn)
O(n^2)
O(2^n)
进程的分类:
跟终端相关的进程
跟终端无关就进程
进程状态:
p:不可中断的睡眠
R:运行或就绪
s:可中断睡眠
T:停止
z:僵死
b:阻塞
<:高优先级进程
N:低优先级进程
+:前台进程组中的进程
l:多线程进程
s:会话进程首进程
[[email protected] ~]# ps aux | head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 2828 1404 ? Ss 02:27 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 02:27 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 02:27 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 02:27 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 02:27 0:00 [watchdog/0]
root 6 0.0 0.0 0 0 ? S 02:27 0:00 [events/0]
root 7 0.0 0.0 0 0 ? S 02:27 0:00 [cpuset]
root 8 0.0 0.0 0 0 ? S 02:27 0:00 [khelper]
root 9 0.0 0.0 0 0 ? S 02:27 0:00 [netns]
**Command加[ ]的,是内核进程
ps:专门查看进程
两种风格:
Sysv风格:-
BSD风格:
常见选项
a:展现BSD风格,显示跟终端有关的进程
u:
x:显示跟终端无关就进程
-F:完全风格
-e:显示所有线程(表示-A)
-l:长格式(PRI表示优先级, NI表示nice值)
-o:指定属性
[[email protected] ~]# ps -el | head
优先级
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 707 - ? 00:00:01 init
1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd
1 S 0 3 2 0 -40 - - 0 - ? 00:00:00 migration/0
1 S 0 4 2 0 80 0 - 0 - ? 00:00:00 ksoftirqd/0
5 S 0 5 2 0 -40 - - 0 - ? 00:00:00 watchdog/0
1 S 0 6 2 0 80 0 - 0 - ? 00:00:00 events/0
1 S 0 7 2 0 80 0 - 0 - ? 00:00:00 cpuset
1 S 0 8 2 0 80 0 - 0 - ? 00:00:00 khelper
1 S 0 9 2 0 80 0 - 0 - ? 00:00:00 netns
!!!!!!!!!找某个进程的常用用法!!!!!!!
[[email protected] ~]# ps aux | grep "bash"
root 1767 0.0 0.1 7844 1620 tty1 Ss+ 02:28 0:00 -bash
root 1790 0.0 0.1 6700 1616 pts/0 Ss 02:29 0:00 -bash
root 2692 0.0 0.0 5936 720 pts/0 D+ 05:35 0:00 grep bash
pstree:显示当前系统的进程树
pgrep:以grep风格查找符合某些特征的进程号
-u :指定以某用户为属主的进程
eg:
[[email protected] ~]# pgrep -u root bash
1767
1790
pidof:根据程序名称查找其相关进程的ID号
top:
M:根据驻留内存大小进行排序
P:根据CPU使用百分比进行排序
T:根据累计时间进行排序
l:是否显示平均负载时间和启动时间
t:是否显示进程和CPU状态相关信息
m:是否显示内存相关信息
c:是否显示完整的命令行信息
q:退出top
k:终止某个进程
选项:
-d #:指定延时时长,单位秒
-b:翻屏显示,批模式
-n #:在批模式下,共显示翻几次屏
进程间通信(IPC:Inter Process Communication)
共享内存
信号:Signal
Semaphore:旗语
kill -l下的重要的信号:
1:SIGHUP 让一个进程不用重启,就可以重读其配置文件,并让新的配置信息生效
2:SIGINT 终端一个进程 =Ctrl+c
9: SIGKILL 杀死一个进程
15:SIGTERM 终止一个进程,默认信号
指定一个信号:
信号号码:kill -l
信号名称:kill -SIGKILL
信号名称简写:kill -KILL
kill PID:终止指定进程号
KILL COMMAND:所有包含此命令的进程都将被杀死
调整nice值
调整已经启动的进程的nice值
renice NICE值 PID
在启动时指定nice值:
nice -n NI Command
[[email protected] ~]# ps axo pid,nice,command | head
PID NI COMMAND
7 0 [cpuset]
8 0 [khelper]
9 0 [netns]
[[email protected] ~]# renice 3 8 ————调整PID为8的进程的nice值为3
8: old priority 0, new priority 3
[[email protected] ~]# ps axo pid,nice,command | head
PID NI COMMAND
7 0 [cpuset]
8 3 [khelper]
9 0 [netns]
前台作业:占据了命令提示符
后台作业:启动之后,释放命令提示符,后续操作在后台完成
jobs:查看后台的所有作业
作业号:不同于进程号
+:命令将默认操作的作业
-:命令将第二个默认操作的作业
前台-->后台:
Ctrl+z 把前台作业送到后台
Command & 让命令在后台进行
bg:让后台停止的作业继续运行(在后台)
bg [[%]JOB-ID]作业号
fg:将后台作业调回前台
fg [[%]JOB-ID]作业号
----%可省
----如果是要杀死后台进程,%不可省
kill %JOB-ID
vmstat:系统状态查看命令
# 跟一个数字,指定每隔几秒钟刷新一次,动态显示
# # 跟两个数字,第一个是每隔几秒钟显示,第二个是刷新几次
uptime
top 的第一行内容
cat /proc/meminfo : 内存相关信息
cat /proc/# 进程号/maps: 进程信息