进程:是已经启动的可执行的运行实例linux
组成web
进程状态shell
父进程复制本身的地址空间建立一个新的进程结构,每一个新进程分配一个惟一的进程IP(PID),知足跟踪安全性,
PID和父进程(PPID)是子进程环境的元素,
任何进程均可以建立子进程,每一个进程都是第一个系统进程的后代
僵尸进程vim
比较容易理解的是:
父进程退出了,子进程没有退出. 这些子进程没有父进程来管理,就变成了僵尸进程
PS查看进程工具centos
经常使用的参数缓存
a: 显示跟当前终端关联的全部进程
u: 基于用户的格式显示
x: 显示全部进程,不以终端机来区分
user:启动这些进程的用户 pid:进程的id %cpu:进程占用cpu百分比 %men:进程占用内存的百分比 vsz:进程占用的虚拟内存大小(单位kb) rss进程占用的物理内存大小(kb)
stat:该进程目前的状态
R:该程序目前正在运行,或者可被运行
S:该程序目前正在睡眠
T:该程序目前正在侦测或者中止了,
Z:该程序应该已经终止,可是其父进程没法正常的终止他,形成zombie僵尸程序的状态
D:不可中断状态
五个基本状态后面还能够加一些字母
<:表示进程运行在高优先级上
N:表示进程运行在低优先级上
L:表示进程有页面锁定在内存中
s:表示进程是控制进程
l:表示进程是多线程的
+:表示当前进程运行在前台
start:被触发启动的时间
time:实际使用cpu运做的时间,有显示0:00的,耗费cpu资源不到1秒
command:改程序的实际指令
还能够经过ps -ef来查看进程安全
-e: 显示全部进程
-f: 显示完整格式输出
UID:启动这些进程的用户 PID:进程的ID PPID:父进程的ID号 C:进程生命周期的利用率 Stime:启动启动时的系统时间 tty:进程在哪一个终端上运行 ?:表示与终端没有关系,大部分是内核的
tty1-tty6是本机上面的登入者程序,若为pts/0等等的,则表示由网络链接进主机的程序(是虚拟的) time:运行进程累计须要的cpu时间 cmd:启动的程序名称
uptime 查看系统负载服务器
20:25:36 :当前时间 up 4 days: 系统运行时间,说明这台服务器已经开机4天了 3 user: 当前登陆的用户数 load average: 0.00, 0.01, 0.05: cpu系统负载,即cpu任务队列的平均长度,三个数值分别是1分钟,5分钟,15分钟的平均值
互动网络
互动: 找出当前系统中,cpu负载太高的服务器 服务器:load average 0.15, 0.08, 0.01 1核 服务器:load average 4.15, 6.08, 6.01 1核 服务器:load average 10.15, 10.08, 10.01 4核 答案:4核 经验:单核心,1分钟的系统平均负载不差过3,就能够,这是个经验值
top命令多线程
第一行,系统负载 第二行,进程信息 tesks(当前任务数) running 运行 sleeping 睡眠 stopped 终止 zombie 僵尸进程 第三行cpu信息 us:用户占用cpu的时间 sy:内核占用cpu ni:用户进程空间内改变过优先级占用的cpu id:空闲cpu的百分比 wa:当对磁盘进行大量写时,发现IO等待会占用不少cpu,若是正常使用占用比较多cpu,磁盘性能有问题 hi:硬件中断占用的cpu,硬件驱动一般是内核中的一个子进程,而不是一个独立的进程 si:软中断,占用的cpu百分比,往磁盘写入数据有个队列,所占用的时间 st:虚拟机占用物理机cpu时间 第四行内存信息 单位kb total 总内存 free 空闲 used 占用 buff/cache 这里的缓存是能够释放的 第五行 swap total 交换区总量 free 空闲的交换区总量 used 使用的交换区总量 avail Mem 总共的可利用内存是多少 注意:若是swap分区,被使用,那么你的内存不够用了
快捷键
默认 3s 刷新一次,按s修改刷新时间
按空格当即刷新
按大写的 C 按照cpu占用排序
按大写的 M 安装内存占用排序
按数字键1,显示每一个内核的cpu使用频率
按u: 显示指定的用户
h:帮助
top -p 1 经过进程ID查看单个进程
找出系统中占用系统进程最多的进程
top 后按大写的P
在linux系统中最多可使用100%CPU吗
理论上:若是你是4核心的cpu,你能够运行400%
lsof命令
-p 进程号,列出指定进程号打开的文件
-i 条件:列出符合条件的进程
查看某个进程读了那些文件,调用了那些东西呢,通常用于木马进程
lsof -p 进程ID
查看端口,或者看黑客开启的后门端口是哪一个进程在使用
lsof -i:22
pstree工具
前台进程:
是在终端中运行的命令,那么终端就是进程的控制终端
一旦这个终端关闭,这个进程也随之消失
后台进程,
也叫守护进程,是运行在后台的一种特殊进程,不受终端控制,不须要终端的交互,
linux的大多数的服务器就是用守护进程来实现的, 好比web服务器httpd等
前台后台进程切换
&用在一个命令的最后,能够把这个命令放到后台执行
ctrl + z能够将一个正在前台执行的程序放到后台
jobs查看当前有多少在后台运行的进程,这是一个做业控制命令
fg命令将后台中的命令调到前台继续运行,
若是后台中有多个命令能够用 fg %jobnumber将选中的命令调出,
%jobnumber是经过jobs命令查到的后台正在执行的命令的序号(不是pid)
bg命令将一个在后台中暂停的进程,变成继续执行,
用法同上
关闭进程
kill [信号] [进程ID]
kill -l -->列出指定的信号
经常使用的信号
信号编号 信号名 解释 1 SIGHUP 从新加载配置 2 SIGINT 键盘中断ctrl+c 3 SIGQUIT 退出 9 SIGKILL 强制退出 15 SIGTERM 终止(正常结束),缺省信号 18 SIGCONT 继续 19 SIGSTOP 中止 20 SIGTSTP 暂停 ctrl+z
killall 和 pkill 命令经过指定名字来杀死进程
killall sshd
pkill sshd
进程优先级管理
优先级的取值范围(-20,19),越小优先级越高,默认优先级是0
nice -n
nice -n 5 vim a.txt ctrl+z挂起进程
查看进程的PID
查看PID:ps -axu | grep vim
根据PID查看进程的信息
能够发现NI优先值是5
实战:使用screen后台实行执行命令备份命令
场景:公司晚上须要备份1t数据,我再xshell上直接执行备份脚本back.sh能够吗?
或直接运行back.sh&放到后台运行能够吗?
当关了xshell,back.sh&还在后台执行吗?
xshell长时间链接,若是本地网络偶尔断开或者xshell不当心关闭,都会让后台运行的备份命令中止运行的
正确作法使用:screen
安装yum install screen
用法:
执行screen,将打开一个全新的会话运行你的备份任务,或者vim a.txt命令这时能够键入快捷键ctrl+a+d 就已经分离出一个单独的会话screen -ls 查看已经创建的会话idscreen -r 25448 经过PID 从新链接会话screen -S text 指定会话名称当不想使用screen会话了,exit退出