当前位置: 首页 > news >正文

第十四章 Linux实操篇——进程管理(重点)

1. 基本介绍

(1)在Linux中每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid进程号)

(2) 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程 则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行

(3)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束

(4)示意图:

2. 显示系统执行的进程

2.1 基本介绍

ps 命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数

PID:进程识别号;TTY:终端机号;TIME:占用CPU时间;CMD:正在执行的命令

参数:ps -a(显示当前终端的所有进程信息);ps -u(以用户的格式显示进程信息);ps -x(显示后台进程运行的参数)

2.2 ps详解

(1)指令:ps -aux | grep xxx(例如有无sshd服务)

(2)指令说明

USER:该进程执行用户;PID:进程号;%CPU:进程占用CPU的百分比;%MEM:进程占用物理内存的百分比;VSZ:虚拟内存的大小,单位KB;RSS:进程占用的物理内存大小,单位KB;TTY:终端名称;STAT:进程状态(S睡眠、R正在运行、D短期等待、Z僵死进程、T被跟踪或被停止);START:进程的启动时间;TIME:CPU时间,即进程使用CPU的总时间;COMMAND:启动进程所用的命令或参数,如果过长会被截断

2.3 应用实例

案例:以全格式显示当前所有的进程,查看进程的父进程(一个进程创建其他进程,多进程概念)例如:查看sshd的父进程信息

ps -ef是以全格式显示当前所有的进程

-e显示所有进程、-f全格式

UID:用户ID;PID:进程ID;PPID:父进程ID;C:CPU用于计算执行优先级的因子(数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明CPU是I/O密集型运算,执行优先级会提高);STIME:进程启动的时间;TTY:完整的终端名称;TIME:CPU时间;CMD:启用进程所用的命令和参数

3. 终止进程kill和killall

3.1 介绍

若是某个进程执行一半需要停止时,或是已经消耗了很多的系统资源时,此时可以考虑停止该进程(使用kill命令来完成此项任务)

3.2 基本语法

kill [选项] 进程号(通过进程号杀死进程)

killall 进程名称(通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

3.3 常用选项

-9:表示强迫进程立即停止

3.4 应用实例

(1)踢掉某个非法登录用户(kill对应的进程号)

(2)终止远程登录服务sshd,在适当时候再次重启sshd服务(/bin/systemctl start sshd.service)

(3)终止多个gedit(killall gedit)

(4)强制杀掉一个终端(kill -9 bash 对应的进程号)

4. 查看进程树pstree

4.1 基本语法

pstree [选项],可以更加直观的来看进程信息

4.2 常用选项

-p(显示进程PID);-u(显示进程所属用户)

4.3 应用实例

(1)树状的形式显示进程的PID

(2)树状的形式显示进程的用户

5. 服务(service)管理

5.1 介绍

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysqld、sshd防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点

5.2 service管理指令

(1)service 服务名 [start启动 | restart重启 | reload重载 | status状态]

(2)在centos7.0后很多服务不再使用service,而是systemctl

(3)service指令管理的服务在/etc/init.d查看(绿色)部分

5.3 service管理指令案例

使用service指令查看、关闭、启动network

5.4 查看服务名

(1)使用setup就可以看到全部系统服务(前面有*表示会随着Linux的启动自动启动)

(2)/etc/init.d可以看到service指令管理的服务(ls -l /etc/init.d)

5.5 服务的运行级别(runlevel)

(1)Linux系统有7中运行级别(runlevel):常用的是级别3和5

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录

运行级别2:多用户状态(没有NFS网络文件存储系统),不支持网络

运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式(无界面)

运行级别4:系统未使用,保留

运行级别5:X11控制台,登录后进入图形GUI模式

运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

工作中几乎都是3!

(2)开机的流程说明:

先开机,进入BIOS,然后引导,开启1号进程systemd,确定运行级别,启动运行级别对应服务

5.6 centos7后运行级别说明

在/etc/initab进行简化

systemctl get-default(查看当前运行级别)

systemctl set-default TARGET.target(切换运行级别)

5.7 chkconfig指令

5.7.1 介绍

(1)通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭

(2)chkconfig指令管理的服务在/etc/init.d查看

(3)注意:在centos7.0后,很多服务使用systemctl管理

5.7.2 基本语法

chkconfig --list(查看服务);chkconfig 服务名 --list

chkconfig --level 5 服务名 on/off(某个服务在某个运行级别设置自启动/停止)

5.7.3 应用案例

对network服务,进行操作,把network在3运行级别关闭自启动

chkconfig重新设置服务自启动或关闭后,需要重启机器生效

5.8 systemctl管理指令5.9 systemctl设置服务的自启动状态

5.8.1 基本语法

systemctl [start | stop | restart | status] 服务名

systemctl管理的服务在/usr/lib/systemd/system查看

5.8.2 systemctl设置服务的自启动状态

(1)systemctl list-unit-files | grep 服务名(查看服务开机启动状态,grep可以进行过滤)

(2)systemctl enable 服务名(设置服务开机启动)

(3)systemctl disable 服务名(关闭服务开机启动)

(4)systemctl is-enabled 服务名(查询某个服务是否是自启动的)

5.8.3 应用案例

查看当前防火墙状态,关闭和重启防火墙

注意:(1)关闭和启动防火墙后,立即生效

(2)这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置

(3)如果希望设置某个服务自启动或关闭永久生效,要使用systemctl [enable | disable] 服务名

5.9.1 概述

在真正的生产环境,往往需要将防火墙打开,但是如果将防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,就需要打开指定的端口

5.9.2firewall指令

打开端口:firewall-cmd --permanent --add-port=端口号/协议

关闭端口:firewall-cmd --permanent --remove-port=端口号/协议

重新载入才能生效:firewall-cmd --reload

查询端口是否开放:firewall-cmd --query-port=端口/协议

5.9.3 应用案例

启用防火墙,测试111端口是否能telnet;开放111端口;再次关闭111端口

6. 动态监控进程

6.1 概述

top和ps命令很相似,它们都是用来显示正在执行的进程。top和ps最大的不同之处在于top在执行一段时间可以更新正在运行的进程

6.2 基本语法

top [选项]

参数:-d秒数(指定top命令每隔几秒更新,默认是3秒);-i(使top不显示任何限制或者僵死进程);-p(通过指定监控进程ID来仅仅监控某个进程状态)

第一行:当前时间;系统执行时间;用户数量:负载值(3个值相加除以3,若大于0.7则系统负载大,若0.7以下则正常)

第二行:系统任务数;正在运行数;休眠数;停止数;僵死数

第三行:CPU占用百分比(用户占用;系统占用;空闲)

第四行:内存占用情况(共有内存;空闲内存;使用内存)

第五行:分区(共有;空闲;可获取)

6.3 交互操作说明

6.4 应用案例

(1)监视特定用户

输入top命令后回车,然后输入'u',再输入用户名回车

(2)终止指定进程

输入top命令后回车,然后输入'k',再输入要结束进程的ID号

7. 监控网络状态7.1 查看系统网络状况netstat

基本语法:netstat [选项]

参数:-an(按一定顺序排列输出);-p(显示哪个进程在调用)

案例:请查看服务名为sshd的服务的信息

7.2 检测主机连接命令ping

ping是一种网络检测工具,主要用于检测远程主机是否正常,或是两部主机间的网线或网卡故障

相关文章:

  • 网络原理8 - HTTP协议1
  • AI Agent 核心策略解析:Function Calling 与 ReAct 的设计哲学与应用实践
  • python打卡day51
  • 计算机视觉与深度学习 | 两种经典的低照度增强算法:多尺度Retinex(MSR)和自适应直方图均衡化(CLAHE)
  • 我们来学mysql -- keepalive主从高可用
  • YOLOv1 技术详解:目标检测的实时革命
  • 为何AI推理正推动云计算从集中式向分布式转型
  • React Native UI 框架与动画系统:打造专业移动应用界面
  • 网络请求与本地存储:Axios 与 AsyncStorage 在 React Native 中的应用
  • 深入偏微分方程的世界-AI云计算
  • 开源 java android app 开发(十二)封库.aar
  • 基于React Native的HarmonyOS 5.0休闲娱乐类应用开发
  • Android的Dalvik和ART
  • 【DETR目标检测】ISTD-DETR:一种基于DETR与超分辨率技术的红外小目标检测深度学习算法
  • 修仙处于平凡
  • 华为服务器obsutil使用方法
  • 计算机网络:认证和授权 DNS 域名解析过程(如何转换为ip地址) http无状态 5**服务端错误相关的响应状态码 tcp某次握手丢失会有什么现象?
  • WPP 媒体推出基于人工智能的工具突破基于身份识别的定向模式
  • 摄影入门:相机基本参数解析
  • SpringBoot学习day2-前后端的交互搭建以及跨域问题、拦截过滤器问题的解决
  • 建设门户网站的目的和意义/爱站关键词挖掘old
  • seo网站建设课程/北京网络营销公司排名
  • 网站建设模拟软件/搜索引擎排名优化是什么意思
  • 网站设计公司费用/百度没有排名的点击软件
  • 移动端app开发公司/安徽网站关键字优化
  • 网站开发好学不/律师推广网站排名