本节内容所讲内容
10.1 进程概述和ps 查看进程工具
10.2 uptime 查看系统负载-top 动态管理进程
10.3 前后台进程切换-nice 进程优先级-free 实战screen后台执行命令
进程是已经启动可执行程序的运行实例,进程有如下组成部分
已经分配内存的地址空间
安全属性,包括所有权凭据和特权
程序代码的一个或者多个执行线程
进程状态
程序; 二进制文件,静态 /bin/date , /usr/sbin/sshd
进程:是程序运行的过程,冬天,有生命周期及运行状态


centos5 或者6PID 为1的进程是:init
centos7 PID 为1 的进程是:systemd
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait 或者waitpid 获取子进程的状态信息,那么子进程的进程描述符任然在系统中
这种称谓子进程,

进程ID (PID) : 是唯一的数值,用来区分进程
父进程的ID (PPID)
启动进程的用户ID (UID) he 所归属的组(GID)
进程状态:状态分为运行为R,休眠S,僵尸Z
进程执行的优先级
进程执行的优先级
进程所连接的终端名
进程资源占用: 比如占用资源的大小 (内存CPU)
10.1.3 使用ps 查看进程工具
1.ps 查看进程工具
例1 ;常用的参数
a: 显示跟前终端关联的所有进程
u: 基于用户的格式显示 (u:显示某用户ID所有的进程)
x: 显示所有进程,不以终端机来区分
[root@xueshen65]~# ps -aux

注意: 最后一列[xxx] 使用放括号括起来的进程是内核态的进程,没有括起来的是用户态进程
上面的参数输出每列含义
USER:启动这些进程的用户
PID:进程的ID
%CPU ;进程占用的CPU 百分比
%MEN 占用内存的百分比
VSZ : 进程占用的虚拟机大小 (单位KB)
RSS: 进程占用的物理内存大小 (单位:kb)
STAT :该进程目前的状态,Linux进程5 种状态

START:该process被触发启动的实际
TIME:该process实际使用CPU运行的时间
command : 该程序的实际指令


例子 1 vim a.txt 按下 Ctrl +z
# 查看状态S 表示睡眠状态,+ 表示前台


T 表示STOP 状态,停止状态
注意:
Ctrl+c 是发送SIGINT,信号,终止一个进程
Ctrl+z , 是发送SIGSTOP ,挂起一个进程,将作业放置到后台(暂停)
Ctrl+d 不是发送信号,而是表示一个特殊的二进制值,表示EOF,代表输入完成或者注销
2 ps 常用的参数: ps -ef
-e 显示所有进程
-f 显示完整格式输出
我们常用的组合: ps -ef

包含的信息如下:
UID;启动这些进程的用户
PID: 进程的ID
PPID :父进程的进程号
C: 进程生命周期中的CPU利用率
STIME :进程启动时的系统时间
?
TTY:标明进程在哪个终端设备上进行,如果现实 ? 表示与终端无关
这种进程一般是内核态进程,另外tty1-tty6 是本机上面的登入者程序,弱为tty0
等等的,则表示为由网络连接金主机的程序
TIME :运行进程一共累计占用的CPU时间
CMD 启动的程序名称
ps -aux 是BSD格式来显示进程
ps -ef 是用标准格式显示进程
10.2 uptime 查看系统负载-top 动态管理进程
uptime 查看CPU 负载工具
[root@xueshen65 ~]# uptime
00:38:23 up 14:18, 4 users, load average: 0.00, 0.01, 0.05

任务队列的平均长度是什么?
大厅排除买票

10.2.2 top 命令
top # top 弹出的每行信息含义如下
第一行内容和uptime弹出的信息一样
进程和CPU的信息(第二,三行)



两个dd 进程对磁盘进行大量写时,大小IO等待会占用很多CPU,如果wa 占用CPU
原因吸盘性能有问题,建议换磁盘




如果swap分区被使用了,那么内存可能不够用了
top 的快捷键
默认3s 刷新一次,按下s 刷新时间
按空格:立即刷新
q 退出
p : 按CPU排序
M : 按内存排序
T 按时间排序
数字键1 显示每个内核的CPU
u/U 指定显示的用户
h: 帮助
root@xueshen65 ~]# ps -aux | grep vim
root 16246 0.0 0.2 151832 5388 pts/3 T 3月20 0:00 vim a.txt
root 25667 0.0 0.0 112724 988 pts/0 S+ 01:39 0:00 grep --color=auto vim
[root@xueshen65 ~]# top -p 16246


这是第一次见,
如果你的4核心的CPU,可以运行为400%
10.2.4 lsof 命令
lsof 命令用于查看金进程打开的文件,打开文件的进程,进程打开的端口(TCP,UDP)
-i <条件> 列出符合条件的进程(4,6 协议,端口,@ip)
-p 进程号 列出指定进程号所打开的文件

pstree 工具使用
pstree 以树状图显示进程,只显示进程的名字,而且相同进程合并显示
格式 pstree 或者 pstree -p
以树状显示进程,还显示进程PID
pstree -p | more
10.3 前后台进程切换-nice 进程优先级free-实战screen 后天执行命令
10.3.1 Linux 后台进程与前台进程的区别
前台进程:是在终端中执行运行的命令,那么该终端就为进程的控制终端,一旦关闭这个终端,这个进程就会消失
后天进程:也叫守护进程,是运行在后台的一种特殊进程,不受终端控制,它不需要终端的交互,Linux大多数服务器就是守护进程实现的,比如,Web 服务器HTTPd

实战恢复被挂起的进程
[root@xueshen65 ~]# vim a.txt
[root@xueshen65 ~]# ps -aux | vim
[root@xueshen65 ~]# jobs 查看当前有多少在后台运行的进程
[1]+ 已停止 vim a.txt
[root@xueshen65 ~]# fg 1 将后台挂起的进程恢复到前台运行
vim a.txt
[root@xueshen65 ~]#
Vim: 警告: 输入不是来自终端(键盘)
10.3.3 kill 关闭进程
关闭进程的3个命令, kill pkill
kill 关闭进程 kill 进程号, 关闭单个进程
killall 和pkill 命令用于杀死指定名字的进程
kill -l ============= 列出所有支持的信号()
用得最多的是 9 信号

1 ) SIGHUP 重新加载
2 ) SINGINT 键盘终端Ctrl+c
3 ) SIGQUIT 退出
9) 强制终止
15 ) SIGTERM 终止(正常结束) 缺省信号
18 ) 继续
19 ) 停止
20 ) 暂停 Ctrl +z

10.3.4 进程的优先级管理
优先级取值范围为-20,19 ,越小优先级越高,默认优先级是0
命令1: nice 指定程序的运行优先级
格式:nice n command
命令2 : renice 改变程序的运行优先级
格式:renice -n pid
实战 指定运行一个vim优先级为5
[root@xueshen65 ~]# nice -n 5 vim a.txt
[1]+ 已停止 nice -n 5 vim a.txt
[root@xueshen65 ~]# ps -aux | grep vim
root 26685 0.0 0.2 151832 5416 pts/0 TN 03:07 0:00 vim a.txt
root 26696 0.0 0.0 112724 988 pts/0 S+ 03:08 0:00 grep --color=auto vim
[root@xueshen65 ~]# top -p 26685

’改变优先级
[root@xueshen65 ~]# renice -10 26685
26685 (进程 ID) 旧优先级为 5,新优先级为 -10

10.3.5 实战;使用screen 后台实时执行命令备份命令(必会)
实战场景 公司晚上需要备份1T 数据,我在xshell上直接执行备份脚本back.sh 可以吗?
或直接运行back.sh & 放到后天运行可以吗? 当关了xshell,后back.sh & 还在后天实行吗?
答 :xshell长时间连接,如果本地网络偶尔断开或xshell不小心关闭,都会让后台运行的备份命令停止运行的
正确做法 screen
10.3.6 screen 概述和安装
Screen 中有会话的概念,用户可以在一个screen 中创建多个screen窗口,在每一个screen中就像操作一个真实Telnet /SSH 连接窗口那样
安装一个screen
[root@xueshen65 ~]# rpm -ivh /mnt/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:screen-4.1.0-0.25.20120314git3c29################################# [100%]
安装完以后,直接
screen #进入
vim a.txt 执行命令,或执行你命令需要运行的备份命令
此时向离开一段时间,但是还想这个命令继续执行
在里面执行 写数字
按下Ctrl+a+d
[root@xueshen65 ~]# screen
[detached from 27058.pts-0.xueshen65] 分离处理独立的一个会话
半个小时以后,如何找到会话
[root@xueshen65 ~]# screen -ls
There is a screen on:
27058.pts-0.xueshen65 (Detached)
1 Socket in /var/run/screen/S-root.
[root@xueshen65 ~]#
[root@xueshen65 ~]# screen -r 27058 就可以进入了
exit 不想使用screen 会话,执行exit 退出

附加 :常用screen 参数
screen -S test -->

总结 :
10.1 进程概述和ps 查看进程工具
10.2 uptime 查看系统-top 动态管理进程
10.3 前后台切换-nice 进程优先级- 实战screen 后台执行命令