Linux系统进程管理
什么是进程
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
分配内存, 已分配内存的地址空间
安全属性, 进程的运行身份和权限
进程代码, 运行一个或多个的线程
进程状态, 进程运行后的多种状态
静态程序, 二进制文件, 静态/usr/bin/ls, /usr/sbin/sshd
动态进程, 程序运行的过程, 有生命周期及运行状态
进程的运行环境,包括以下几个部分:
局部和全局变量
当前的调度上下文
分配给进程使用的系统资源,例如文件描述符、网络端口等
给进程分配对应的PID,PPID
进程生命周期
![Alt text](data:image/jpeg;base64,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AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAQ9DX4T/wDBRX/k+G8/6+rT/wBHNX7sHoa/Cf8A4KK/8nw3n/X1af8Ao5qpFI/bb4b/APJO/C3/AGBbH/0QldHXOfDf/knfhb/sC2P/AKISujqWSwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvFP2y/+TbPG3/YOf+Ve114p+2X/AMm2eNv+wc/8qaGj82P+CM3/ACWjX/8AsFSf+y1+yVfjb/wRm/5LRr//AGCpP/Za/ZKhgwooopCCiiigAooooAKKKKACgkAZJ4qOVigBwxGeQFzmsnXPFvhnw4gfXdbs7Hd937RKFx+dOw7G1RXn8vx2+FcR2nxlp7YOMrKpB/Wmr8evhV28XWR+jj/GiwWPQqK8+/4X18K/+hrtf++x/jR/wvr4V/8AQ12v/fY/xosFj0GivPv+F9fCv/oa7X/vsf40f8L6+Ff/AENdr/32P8aLBY9Borz7/hfXwr/6Gu1/77H+NH/C+vhX/wBDXa/99j/GiwWPQaK8+/4X18K/+hrtf++x/jR/wvr4V/8AQ12v/fY/xosFj0GivPv+F9fCv/oa7X/vsf40D49fCo8HxbZgepkUf1osFj0GjI9a4BPjx8Knbb/wmOnAepnT/GtjRfiJ4G8TSm30XxTpt5Kf+WaXCswP+7miwWOnoqOPcfvkHH+zjFSUNWBqwUUUUhBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFGe1FNIOeOQevNNDQ6iua13x94M8LziLXfFFhZsBjy5plVs/iaxH+PHwrRtv/CYacfcTr/jRYLHoFFeff8AC+vhX28WWh9w4/xo/wCF9fCv/oa7X/vsf40WCx6DRXn3/C+vhX/0Ndr/AN9j/Gj/AIX18K/+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)
程序运行时进程的状态关系:
父进程复制自己的地址空间创建新的子进程, 子进程可以继承父进程(PPID)的环境变量
每个进程都有自己的唯一ID(PID)
进程是由systemd这个父进程派生出来的子进程
子进程在运行自己的程序代码的时候, 父进程往往会进入到睡眠状态。
子进程完成程序代码发出退出信号请求,
子进程已经关闭或丢弃了其资源环境, 剩余的部分称之为僵停(僵尸Zombie)
父进程在子进程退出时收到信号会被唤醒, 清理剩余的结构,然后继续执行其自己的程序代码。
监控和管理进程
在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。
在进程运行时,它对 CPU 时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。
静态监控进程
静态查看进程通常使用ps命令
了解进程如下选项:
PID,PPID
当前的进程状态
内存的分配情况
CPU 和已花费的时间
用户UID决定进程的特权
[root@local ~]
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 46276 5836 ? Ss Feb27 0:46 /usr/lib/systemd/systemd --system --deserialize 21
USER: //运行进程的用户
PID: //进程 ID
%CPU: //CPU 占用率
%MEM: //内存占用率
VSZ: //占用虚拟内存
RSS: //占用实际内存 驻留内存
TTY: //进程运行的终端
STAT: //进程状态 man ps (/STATE)
R //进程运行
S //可中断睡眠
D //不可中断睡眠
Z //僵尸进程
X //进程已经退出
T //进程被暂停
Ss s //进程的领导者,父进程
S< < //优先级较高的进程
SN N //优先级较低的进程
R+ + //表示是前台的进程组
Sl //以线程的方式运行
START: //进程的启动时间
TIME: //进程占用 CPU 的总时间
COMMAND: //进程文件,进程名
ps命令使用方法
//对进程的CPU进行排序展示
[root@local ~]
[root@local ~]
//显示进程的子进程
[root@local ~]
[root@local ~]
[root@local ~]
root 2225 0.0 0.0 112720 984 pts/0 S+ 07:20 0:00 \_ grep --color=auto httpd
root 2160 0.1 0.2 230376 5188 ? Ss 07:19 0:00 /usr/sbin/httpd -DFOREGROUND
apache 2166 0.0 0.1 230376 3012 ? S 07:19 0:00 \_ /usr/sbin/httpd -DFOREGROUND
apache 2167 0.0 0.1 230376 3012 ? S 07:19 0:00 \_ /usr/sbin/httpd -DFOREGROUND
apache 2168 0.0 0.1 230376 3012 ? S 07:19 0:00 \_ /usr/sbin/httpd -DFOREGROUND
apache 2169 0.0 0.1 230376 3012 ? S 07:19 0:00 \_ /usr/sbin/httpd -DFOREGROUND
apache 2170 0.0 0.1 230376 3012 ? S 07:19 0:00 \_ /usr/sbin/httpd -DFOREGROUND
//自定义显示字段
[root@local ~]
root 45151 1 0.5 /usr/sbin/httpd -DFOREGROUND
apache 45152 45151 0.2 /usr/sbin/httpd -DFOREGROUND
apache 45153 45151 0.2 /usr/sbin/httpd -DFOREGROUND
apache 45154 45151 0.2 /usr/sbin/httpd -DFOREGROUND
apache 45155 45151 0.2 /usr/sbin/httpd -DFOREGROUND
apache 45156 45151 0.2 /usr/sbin/httpd -DFOREGROUND
root 45158 44906 0.0 grep --color=auto httpd
//查看指定进程PID
[root@local ~]
root 983 0.0 0.2 112796 4284 ? Ss 07:01 0:00 /usr/sbin/sshd -D
root 1519 0.0 0.2 158800 5552 ? Ss 07:10 0:00 sshd: root@pts/0
root 2253 0.0 0.0 112720 984 pts/0 S+ 07:21 0:00 grep --color=auto sshd
[root@local ~]
983
//pgrep常用参数, -l -a
[root@local ~]
983
1519
[root@local ~]
1519 983
//查看进程树
[root@local ~]
动态监控进程/htop
![](https://img2018.cnblogs.com/blog/1378145/201902/1378145-20190228200139085-888268332.png)
[root@local ~]
[root@local ~]
[root@local ~]
[root@local ~]
[root@local ~]
[root@local ~]
top 常见指令
h 查看帮出
z 以彩色信息展示
1 显示所有CPU的负载
s 设置刷新时间
b 高亮现实处于R状态的进程
M 按内存使用百分比排序输出
P 按CPU使用百分比排序输出
R 对排序进行反转
f 自定义显示字段
k kill掉指定PID进程
W 保存top环境设置 ~/.toprc
q 退出
Web压力测试
ab -c 100 -n 100 http://www.baidu.com/index.html
-c 100表示并发用户数为100
-n 1000表示请求总数为100
http://www.baidu.com/index.html表示请求的目标URL
请求100次,100个并发
系统负载的计算和意义
进程以及子进程和线程产生的计算指令都会让cpu执行,产生请求的这些进程组成”运行队列”,等待cpu执行,这个队列就是系统负载, 系统负载是所有cpu的运行队列的总和.
[root@local~]# w
20:25:48 up 95 days, 9:06, 1 user, load average: 2.92, 0.00, 0.00
cpu1 cpu2 cpu3 cpu4
2.94/4
2.92/2 = 146% 已经验证超过了cpu的处理能力
信号管理进程
使用kill命令发送信号与进程通信
定义守护进程的角色
结束用户会话和进程
kill,killall,pgrep,pkill
[root@local ~]# kill -l
数字信号 信号别名 作用
1 HUP 挂起信号,往往可以让进程重新配置
2 INT 中断信号,起到结束进程的作用,和ctrl + c 的作用一样
3 QUIT 让进程退出,结果是进程退出
9 KILL 直接结束进程,不能被进程捕获
15 TERM 进程终止,这是默认信号
18 CONT 被暂停的进程将继续恢复运行
19 STOP 暂停进程
20 TSTP 用户停止请求,作用类似于ctrl + z 把进程放到后台并暂停
kill命令发送信号
[root@local ~]# yum -y install vsftpd
[root@local~]# systemctl start vsftpd
[root@local~]# kill -1 9160
[root@local ~]# kill 9160
[root@local ~]# touch file1 file2
[root@local ~]# tty
/dev/pts/1
[root@local ~]# vim file1
[root@calo ~]# tty
/dev/pts/2
[root@local ~]# vim file2
[root@local ~]# ps aux |grep vim
root 4362 0.0 0.2 11104 2888 pts/1 S+ 23:02 0:00 vim file1
root 4363 0.1 0.2 11068 2948 pts/2 S+ 23:02 0:00 vim file2
[root@local ~]# kill 4362
[root@local ~]# kill -9 4363
[root@local ~]# killall vim
[root@local ~]# w
20:50:17 up 95 days, 9:30, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
xuliangw pts/0 115.175.115.39 20:22 0.00s 0.01s 0.00s sshd: oldboy [priv]
[root@oldboy ~]# pkill -t pts/0
[root@oldboy ~]# pkill -9 -t pts/0
[root@linux-oldboy ~]# pgrep -l -u oldboy
32206 sshd
32207 bash
后台进程管理
作业控制是一个命令行功能,允许一个 shell 实例来运行和管理多个命令。
如果没有作业控制,父进程 fork()
一个子进程后,将 sleeping,直到子进程退出。
使用作业控制,可以选择性暂停,恢复,以及异步运行命令,让 shell 可以在子进程运行期间返回接受其 他命令。
前台进程,后台进程jobs,bg,fg
ctrl + Z , ctrl +c , ctrl + B
[root@oldboy ~]# sleep 3000 &
[root@oldboy ~]# sleep 4000
[2]+ Stopped sleep 4000
[root@oldboy ~]# ps aux |grep sleep
[root@oldboy ~]# jobs
[1]- Running sleep 3000 &
[2]+ Stopped sleep 4000
[root@oldboy ~]# bg %2
[root@oldboy ~]# fg %1
[root@oldboy ~]# kill %1
[root@oldboy ~]# (while :; do date; sleep 2; done) &
[root@oldboy ~]# (while :; do date; sleep 2; done) &>/dev/null &