一.概述
进程就是系统运行中的程序(process)
是正在执行的一个程序或者命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源
例如windows安装程序,先下载程序安装包,安装到指定硬盘。
双击运行后系统就会有对应的应用进程显示。
进程会占用四类资源,CPU,memory,disk,network
CPU (Central Processing Unit 中央处理单元 )lscpu命令可以看到CPU的详细信息
Memory(内存)free -h命令可以查看系统内存大小
Disk(磁盘)
Network(网络)
二.进程管理
1.进程管理的作用:(1)判断系统的健康状态(2)查看系统的所有进程(3)结束相应进程
查看系统当前进程
ps aux(查看当前时间节点进程信息)
ps aux | grep zx ( 表示查找zx用户使用的进程,)
ps le \ps ef(l表示显示详细信息,e表示显示所有进程)
USER:该进程是由那个用户产生的
PID:进程的ID编号
%CPU:该进程的CPU资源占用百分比
%MEM:该进程的内存资源占用百分比
VSZ:该进程的虚拟内存的大小,单位KB(将磁盘的一部分空间转为虚拟内存使用,在物理内存使用占满后才会用到)
RSS:该进程占用实际物理内存的大小,单位KB
TTY:该进程是在哪个终端上运行的(TTY1~TTY6代表本地控制台终端。TTY1是图形终端,TTY2~6是本地的字符界面终端。PTS/0-255代表虚拟终端。)
STAT:进程状态。R:运行、S:睡眠、T:停止、s:包含子进程、+:位于后台
START:该进程启动时间
TIME:该进程占用系统得到运算时间(注意不是系统时间)
COMMAND:产生此进程的命令名
top (表示进入监听模式,输入h显示帮助,输入P以cpu进行排序,M以内存排序,N以PID排序,输入q可以退出,该命令可以动态显示进程的信息变化)
第一行是系统信息:
16:34:25 是系统时间;Up1day,14:17是系统运行时间;1 user是系统当前登录用户数量;
load average:0.00,0.00,0.00是系统1分钟5分钟15分钟内的平均负载。大于1表示超负载
第二行是进程信息:
Tasks:290total表示系统进程总数;running表示正在运行的进行;sleeping表示睡眠的进程
stopped便是已停止的进程;zombie表示僵尸进程(如果不是0,需要手动检查)
第三行是cpu信息:
us表示用户占用cpu百分比;sy表示系统占用cpu百分比;ni表示改变过优先级的用户占用百分比
id表示空闲cpu占用百分比;wa表示等待输入/输出的进程占用百分比;hi表示硬件中断请求服务占用百分比;si表示软件中断请求服务占用百分比;st表示steal time虚拟时间百分比,就是当有虚拟机时虚拟cpu等待实体cpu的时间百分比
第四行是物理内存信息:
Mem表示物理内存总量;used表示以使用的物理内存;free表示闲置物理内存;buffers表示缓冲数量
第五行是交换分区(swap)信息:
swap表示交换分区(虚拟内存)的在大小;used表示已经使用的交互分区的大小;free表示空闲交换分区的大小;cached表示作为缓存的交换分区大小
pstree(查看进程树,可以直观的看出父进程与子进程的关系)
pstree -p(将进程树全部展开,查看到对应的PID)
三.终止进程
1, SIGHUP, 该信号让进程⽴即关闭,然后重新读取配置⽂件之后重启
2 ,SIGINT ,程序终⽌信号,⽤户终⽌前台进程。相当去输出ctrl+c快捷键
9, SIGKILL, ⽤来⽴即结束程序的运⾏,本信号不能被阻塞、忽略。⼀般 ⽤于强制终⽌进程
使用 kill命令终止进程
18, SIGCONT, 信号可以让暂停的进程恢复执⾏,本信号不能被阻断
19, SIGSTOP ,该信号可以暂停前台进程,相当于输⼊crtl+z快捷键。本信号 不能被阻断
kill -1 32411 (重启PID为32411的进程)
kill -9 32425(强制终⽌PID为32425的进程)
kill -15 32452(相当于kill 32452,正常结束PID为32452的进程)
Linux服务管理
服务就是进程,进程不一定是服务。
服务是具备一定功能的进程,但有些进程并不具备服务的特征
linux中的第一个进程,就是整个系统的父进程。负责了后面所有的其他进程的启动。
在RHEL6版本之前采用的第一个进程为init,但通过init进程启动的后续进程都是串行启动的,串行启动就意味着速度慢。每个进程需要排队一个一个启动
在RHEL7版本至今,采用的第一个进程为systemd。该进程相比init来说,采用了并行启动的方式,并行启动就意味着速度更快。
systemd管理的内容不仅仅有service,systemd管理的单位是unit,service只是unit(单位)中的一种。
systemctl list-units (查看systemd管理的信息)systemctl list-unit-files (查看)
systemd管理服务(service)操作
systemctl status NetworkManager.service(查看NetworkManager服务的信息)
systemctl stop NetworkMannger(停止NetworkMannger服务)
systemctl start NetworkMannger(启动NetworkMannger服务)
systemctl restart NetworkMannger(重新启动NetworkMannger服务)
systemd管理target
target是由服务组成的一组启动目标。systemd可以设置启动目标,如果指定了一个target作为启动目标,那么下次系统启动时就会启动target里面的所有服务。
systemctl get-default (该命令表示显示下一次启动哪一个target)
multi-user.target (包含了字符界面组件的linux系统)
systemctl isolate multi-user.target (该命令表示临时将系统界面切换到字符界面 )
systemctl set-default multi-user.target (表示下一次开机启动将系统界面切换到字符界面 )
graphical.target (包含了图形界面组件的linux系统)
systemctl isolate graphical.target (该命令表示临时将系统界面切换到图形界面 )
systemctl set-default graphical.target (表示下一次开机启动将系统界面切换到图形界面 )