一.概述

进程就是系统运行中的程序(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 (表示下一次开机启动将系统界面切换到图形界面 )

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐