1.18. Linux进程及作业管理¶
进程通信方法:
同一个主机:
signal
shm
semerphor
不同主机:
rpc
进程分类
- 守护进程
在系统引导过程中启动的进程,和终端无关
- 前台进程
跟终端有关,通过终端启动的进程
进程的状态
运行态
就绪态
睡眠态
僵死态
停止态
1.18.1. 进程管理¶
1.18.1.1. ps¶
用于查看系统当前进程的运行情况
选项和参数
- -A
所有进程列出来
- -a
和终端无关的所有进程
- -u
与用户相关的进程
常用组合方式
ps -ef
ps aux
ps axo
样例:
[root@centos-155 backup]# ps aux |head -n 3
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 125340 3872 ? Ss Feb10 0:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 2 0.0 0.0 0 0 ? S Feb10 0:00 [kthreadd]
user: 用户
pid: 进程id
%cpu: cpu占比
%mem: 内存占比
vsz: 虚拟内存大小
rss: 固定内存大小
tty: 终端
stat: 状态
R: 运行
S:可中断睡眠
D:不可终端睡眠
T:停止
Z:僵死
s:进程领导者
+:前台进程
l:多线程
<:高优先级
N:低优先级进程
start time: 启动时间
command: 命令
1.18.1.2. pgrep¶
选项
- -U
仅仅显示特定用户运行的进程
- -G
仅仅显示特定用户组运行的进程
- -l
显示pid和进程名字
1.18.1.3. top¶
ps是相对一个时间点的进程信息,有时候我们需要动态去观察进程状态,就需要top命令了
选项:
- -b
批次处理
- -n
显示的次数
- -d
指定延迟的时间,单位秒

第一行:
当前时间
系统启动时间
已经登陆的用户数
系统在1,5,15分钟的负载情况
第二行:
任务的总个数
运行个数
睡眠个数
停止个数
僵死个数
第三行:
us:用户空间cpu占比
sy:系统空间cpu占比
ni:改变优先级的cpu占比
id:系统空闲cpu占比
wa:等待io的cpu占比
hi:硬件中断的cpu占比
si:软件终端的cpu占比
第四行:
total:物理内存总量
free:物理内存空闲大小
userd:物理内存的使用量
buff/cache: 物理内存的buffercache大小
第五行:
totol:交换内存的总大小
free:交换分区的空闲大小
userd: 交换内存的使用大小
avail: 可用内存
命令有:
P:cpu排序
M: 内存排序
T: cpu时间片总占用排序
q: 退出
k: 终止特定进程
表头行:
PID: 进程id
USER:用户所属组
PR:进程优先级
NI:nice值
VIRT:进程需要的虚拟内存大小
RES:进程当前使用的内存大小,不包括swap
SHR:进程和其他进程共享的内存大小
S:进程的状态
%CPU:cpu占比
%MEM:内存占比
TIME+:cpu使用时间累计
1.18.1.4. htop¶
htop是top的增强版本,系统默认是没有安装,在epel源中。
1.18.1.5. vmstat¶
[root@centos-155 backup]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 495732 15588 292884 0 0 11 20 97 124 0 0 100 0 0
procs:
r: 等待运行的进程个数(队列的长度)
b: 处理不可中断睡眠状态进程个数(io阻塞队列长度)
memory:
free: 空闲空间大小
buff: 缓冲空间大小
cache:缓存空间大小
swap:
si: 从swap进入系统的速率
so: 从系统出去到swap的速率
io:
bi: 从磁盘到系统的速率
bo:从系统到磁盘的速率
system:
in: 中断速率
cs: 进程切换速率
cpu:
us: 用户空间cpu占比
sy: 系统空间cpu占比
id: 空闲cpu占比
wa: 等待iocpu占比
st: 被偷走的cpu占比
1.18.1.6. glances¶
glances是一款开源命令行系统监控空间,他使用python语言开发,能够监视cpu、负载、内存、 磁盘、网络流量、系统温度等信息。
安装
yum install glances
glances的使用
glances是分客户端和服务端的,
# 服务端执行
glances -s
# 客户端执行
glance -c service-ip
1.18.1.7. dstat¶
dstat是一个可以拒贷vmstat,iostart,netstat和ifstat这些命令的多功能产品。
常用选项
- --top-cpu
显示最占用cpu的进程
- --top-bio
显示最占用block io的进程
- --top-io
显示最占用io的进程
- --top-mem
显示最占用内存的进程
- --ipc
显示进程间通信速率
- --raw
显示raw套接的相关信息
- --tcp
显示tcp套接字相关的数据
- --udp
显示udp套接字相关的数据
- --unix
显示unixsock接口相关的统计数据
- --socket
显示socket信息
1.18.1.8. kill¶
进程的管理就是给进程发送特定的信息,来完成对进程的管理控制。
查看信号
[root@centos-155 backup]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
常用的信号:
全名 |
简写 |
数值 |
描述 |
---|---|---|---|
SIGHUP |
HUP |
1 |
通知进程重读配置文件 |
SIGINT |
INT |
2 |
打断正在运行的进程,相当于ctrl+c |
SIGKILL |
KILL |
9 |
强行中止正在运行的进程 |
SIGTERM |
TERM |
15 |
安全中止正在运行的进程 |
SIGSTOP |
STOP |
19 |
暂停进程 |
SIGCONT |
CONT |
18 |
继续运行指定的进程 |
发送信号样例
[root@centos-155 backup]# kill -9 3110
1.18.2. 作业管理¶
1.18.2.1. 作业的查看¶
[root@centos-155 backup]# jobs
[1]+ Stopped vim a.txt
1.18.2.2. 作业控制¶
fg jobid 把特定的作业调回到前台
bg jobid 把调往后台的指定的作业启动起来
kill jobid 终止特定作业