Linux操作系统概述3——进程相关操作讲解(进程概念、xinetd守护进程、进程管理命令)

目录

进程的概念 

程序与进程的关系

进程的分类

守护进程的分类

进程的PID

进程的状态

xinetd 守护进程服务

xinetd基本概念

xinetd工作原理

xinetd相关文件介绍

守护进程的管理命令

chkconfig 命令

service 命令

systemctl命令

查看进程状态相关命令


一般程序处理的过程

应用程序的执行文件存储在硬盘中,在用户执行程序文件时通过shell将其调用到硬件的内存中去,然后由内存交给CPU进行处理;CPU处理完成后将结果返回到内存,内存再通过shell输出给用户的输出设备

通过以上流程,我们就可以看到程序运行的结果

Linux操作系统概述1——操作系统、Shell、Kernal内核讲解-CSDN博客

Linux操作系统概述2——CentOS6/Redhat6版本的启动流程描述-CSDN博客


进程的概念 

程序与进程的关系

什么是进程

从用户层面:进程就是运行中的程序(程序运行起来被加载到内存中)

从操作系统层面:进程就是操作系统为了更好的管理程序,对运行中的程序进行信息描述

程序与进程的关系

程序就是存储在硬盘中的可执行文件;进程是由程序调用到内存中产生的

程序是静态的;进程是动态的

程序是永久的,进程是短暂的

进程有PCB(进程描述符),操作系统对进程管理就是通过进程描述符PCB进行管理的

程序崩溃时可以通过杀死进程停止程序运行,然后再重启程序来解决崩溃现象;killall可以直接将父进程、子进程杀死

进程的分类

按照进程的功能与服务对象分类

用户进程:通过用户执行程序或者内核之外的系统程序产生的进程;此类进程可以在用户的控制下运行或关闭

系统进程:通过执行系统内核程序而产生的进程(例如 执行内存资源扥配等相对底层的工作);该进程不受用户的干预,即使是root用户也无法干预

按照应用程序的服务类型分类

交互进程

交互进程需要与用户进行交互,等待用户输入相应信息才能够响应该进程(例如ctrl+c)

交互进程可运行于前台,也可以运行于后台

批处理进程

不需要用户干预而按预定顺序执行的进程;通常以脚本或命令文件的形式存在(包含了待执行的一系列任务或操作)

可以理解为shell脚本(shell脚本有多条命令,每条命令都有相应的交互进程,将这些进程打包,按顺序启用交互进程,就称为批处理进程)

守护进程(Daemon进程)——守护进程的名称通常以d结尾

守护进程是在后台运行的特殊进程,是一个生存期较长的进程;通常独立于控制终端,并且周期性的执行某种任务或者等待处理某些发生的事情

大部分守护进程在Linux系统启动时自己启动,并持续运行以提供某种服务(可以通过systemctl设置守护进程是否开机自启动),在系统关闭时就关闭该程序;某些守护进程可以在需要的时候手动启动(由周期性任务crond启动,也可以由用户终端通过systemctl启动进程)

Linux 计划任务讲解(一次性计划、周/长期性计划)_linux计划任务时间格式_-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_49864110/article/details/129191135?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129191135%22%2C%22source%22%3A%22m0_49864110%22%7DLinux的大多数网络服务以及系统监控都是通过守护进程实现的(例如:httpd-http的守护进程、sshd-ssh的守护进程、xinetd-telnet等服务的服务进程)

守护进程的分类

Sysv——独立启动的守护进程

该守护进程由init脚本负责管理,一开机就会进入内存,一直处于listen状态

即使该守护进程不运行也会一直占用系统资源,一直启动,响应速度快

所有独立运行的守护进程的脚本都在/etc/rc.d/init.d目录下

系统服务都是独立启动的守护进程

例如 http的守护进程httpd就是独立启动的守护进程

Xinetd——超级守护进程

通过该守护进程来管理众多进程;但是xinetd自身是一个独立启动的守护进程,常驻内存

通过xinetd管理的进程在没有使用时会睡眠,不占用系统资源,节约资源,但是响应时间长

Xinetd超级守护进程的配置文件是/etc/xinetd.conf,超级守护进程的子进程存放在/etc/xinetd.d目录下

例如 telnet服务的守护进程就是xinetd

进程的PID

PID(process ID)

一个PID只标识一个进程

PID是程序被操作系统加载到内存成为进城后动态分配的资源

每次程序执行时操作系统都会重新加载PID

PPID(parent process ID)

PPID表示某个进程的父进程号;因为有些进程不是直接由程序产生的,而是由进程产生的子进程

所有进程追溯到最终都会落到进程号为1的进程身上,也就是初始化进程;初始化进程是linux内核启动后第一个执行的进程,引导系统来启动守护进程并运行必要的程序;RHEL 4、5、6初始化进程为init;RHEL7、8初始化进程为systemd

进程的状态

系统的进程状态(5个常用模式)

R状态(Running)    运行状态,此进程正在为用户提供服务

S状态(Sleeping)    休眠状态,此进程没有为用户提供服务,正在等待为用户提供服务,不会消耗系统资源

D状态(unstopped)不可中断状态,此进程无法被中断-异常,有可能为用户提供服务,也有可能没有为用户提供服务,都会消耗系统资源(类似于windows的异常响应状态),即使使用kill命令也无法将其中断

Z状态(zombie)      僵死状态,此进程已经终止,没有为用户提供服务,但是进程描述符依然存在,会消耗系统资源,可以在父进程下调用wait4()系统函数后将进程释放

T状态(stopped)     停止状态,此进程停止运行,不会为用户提供服务,也不会消耗系统资源

五个不常用的进程状态

 <状态             高优先级状态

 N状态           低优先级状态

 L状态            被锁进内存状态

 s状态            包含子进程状态

 I(大写i)状态      多线程状态


xinetd 守护进程服务

xinetd基本概念

xinetd全称为扩展互联网服务守护进程,是新一代的网络是守护进程,常常用来管理并保护多种轻量级的Internet服务,管理服务的同时保证这些服务的安全

系统默认哪些服务会使用xinetd作为守护进程

具体可以使用xinetd的服务再/etc/service文件中指出

标准的Internet服务:telnet、ftp

邮件服务:imap、pop3等

内部服务:echo、servers、services、time等

RPC服务:rstatd、walld、rquotad等(xinetd对RPC的支持不稳定,可以通过启用protmap与xinetd共存来解决此问题)

xinetd工作原理

以Telnet服务为例子

telnet客户端访问23端口,将telnet请求提交给Xinetd守护进程

然后Xinetd守护进程激活对应的服务,并将其载入内存

最后Xinetd守护进程提供连接使得telnet客户端能够访问该服务

针对提供的连接,xinetd有两种方式

单线程single-threaded      为所有允许的访问者建立一个连接提供服务

多线程multi-threaded       为每一个允许的访问者建立一个连接提供服务

xinetd相关文件介绍

相关文件路径

/etc/xinetd.conf    该文件为xinetd服务的主配置文件

/etc/xinetd.d         该目录下存放着被托管的服务的目录(可以理解为主配置文件的补充)

主配置文件字段介绍

主配置文件由多个服务块组成,每个服务块的形式如下(也可以把服务块放在/etc/xinetd.d目录下的的不同文件中);服务块的格式如下

service 服务名称

{

       服务相关配置

}

此处主配置文件配置了服务缺省的配置-也就是缺省的服务块(具体针对每个服务的配置也就是针对具体服务的服务块存放在/etc/xinetd.d目录下)

/etc/xinetd.d目录下文件介绍

不同文件表示不同的服务


守护进程的管理命令

chkconfig 命令

针对Redhat 6之前或CentOS6之前的系统

通过chkconfig命令能够了解哪些服务在系统启动时自动启动,在特定的运行级别下启用或禁用的服务(修改的是/etc/rc[0-6].d文件夹中的内容)

主要用来管理服务的自启动和停止,允许用户设置在系统启动时自动运行的服务,并能够指定该服务的启动级别

相关命令

chkconfig --add 守护进程         配置该守护进程自启动

chkconfig --del  守护进程        停止该守护进程的自启动

chkconfig --level [0-6] 守护进程      在该运行级别加入该守护进程

chkconfig --list                          列出已配置的服务以及它们在各个系统级别下的启用状态

service 命令

service基础概念

针对Redhat 6之前或CentOS6之前的系统

service的工作原理是去/etc/init.d目录下去执行相关程序,用service命令对系统服务进程管理

相关命令

service 守护进程 start        启动该守护进程

service 守护进程 sop         停止该守护进程

service 守护进程 restart     重启该守护进程(PID会变)

service 守护进程 reload     重新加载配置该守护进程(PID不会变)

service 守护进程 status     查看该守护进程的状态

service 守护进程 start        启动该守护进程

systemctl命令

systemctl命令是一个systemd工具,主要负责控制systemd系统和服务进程的管理工具

整合了chkconfig与service功能于一体,既可以事项服务的启动、停止、重启、重新加载配置、查看状态的功能,还可以添加服务为开机启动等功能

相关命令

systemctl start守护进程.service               启动该守护进程

systemctl sop 守护进程.service                 停止该守护进程

systemctl restart守护进程.service            重启该守护进程(PID会变)

systemctl reload守护进程.service            重新加载配置该守护进程(PID不会变)

systemctl status守护进程.service             查看该守护进程的状态

systemctl start守护进程.service               启动该守护进程

systemctl enable守护进程.service            服务开机自启动

systemctl disable守护进程.service           服务开机禁用

systemctl list-units --type service –all       查看所有服务状态的详细信息


查看进程状态相关命令

Linux基础命令2(系统信息、系统时间、系统进程相关命令以及历史命令介绍)_查看进程的命令-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_49864110/article/details/128959932?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128959932%22%2C%22source%22%3A%22m0_49864110%22%7D

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/172551.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ceres 使用笔记

文章目录 Part.I IntroductionChap.I 预备知识Chap.II 概念理解 Part.II 简单使用Chap.I Ceres 中主要函数简介Chap.II 一个简单的实例 Reference Part.I Introduction Ceres 1 是由 Google 开发的开源 C 通用非线性优化库&#xff0c;与 g2o 并列为目前视觉 SLAM 中应用最广泛…

el-tree横向纵向滚动条

el-tree未展开时样式 el-tree展开时样式 给容器一个高度&#xff0c;然后样式加上overflow: scroll&#xff0c;这样纵向滚动条就出来了。 <el-card style"height: 528px;overflow: scroll"><el-inputplaceholder"输入关键字进行过滤"v-model&…

Day13力扣打卡

打卡记录 奖励最顶尖的 k 名学生(哈希表排序) 用哈希表对所有的positive与negative词条进行映射&#xff0c;然后遍历求解。tip&#xff1a;常用的分割字符串的操作&#xff1a;1.stringstream配合getline() [格式buf, string, char]2.string.find()[find未找到目标会返回npos…

Vite+Vue3项目全局引入scss文件

前言 Sass 是世界上最成熟、最稳定、最强大的专业级CSS扩展语言&#xff01;在日常项目开发过程中使用非常广泛&#xff0c;今天主要讲一下 ViteVue3 项目中该如何全局引入 scss 文件&#xff0c;引入混合 mixin 文件的不同配置。捎带说一下 Vue2 中的引入方式做一下简单的对比…

哪一个更好?Spring boot还是Node.js

前言 本篇文章有些与众不同&#xff0c;由于我自己手头有些关于这个主题的个人经验&#xff0c;受其启发写出此文。虽然SpringBoot和Node.js服务于很不一样的场景&#xff0c;但是这两个框架共性惊人。其实每种语言都有不计其数的框架&#xff0c;但仅仅一部分是真正卓越的。如…

基于stm32的ADC读取烟雾报警器的数值

本文想要设计一个设计一个有stm32控制的烟雾报警系统。通过MQ-2烟雾报警器将获取模拟的数值传递给stm32的ADC外设并在串口助手上显示对应的电压值。烟雾报警器浓度越高&#xff0c;他的电压就越高&#xff0c;但是不会超过3.3V。设置一个电压临界值&#xff0c;当传输回来的电压…

P3370 【模板】字符串哈希

#include <bits/stdc.h> using namespace std; set<string> se; int main() {int n;cin >> n;for(int i 1;i < n;i){string s;cin >> s;se.insert(s);}cout << se.size() << endl;return 0; }

C语言实现通讯录

大家好&#xff0c;我们今天通过C语言来实现我们现实生活中常用的通讯录功能。 前言&#xff1a; 大家都知道我们生活中的通讯录得保存联系人&#xff0c;修改联系人和删除联系人等等&#xff0c;我们今天就利用C语言来实现通讯录的增删查改等功能。 实现通讯录&#xff1a; 在…

leetCode 2578. 最小和分割 + 排序 + 贪心 + 奇偶分组(构造最优解)

2578. 最小和分割 - 力扣&#xff08;LeetCode&#xff09; 给你一个正整数 num &#xff0c;请你将它分割成两个非负整数 num1 和 num2 &#xff0c;满足&#xff1a; num1 和 num2 直接连起来&#xff0c;得到 num 各数位的一个排列。 换句话说&#xff0c;num1 和 num2 中所…

036-第三代软件开发-系统时间设置

第三代软件开发-系统时间设置 文章目录 第三代软件开发-系统时间设置项目介绍系统时间设置演示效果QML 实现小伙伴自创 TumblerQt 家 Tumbler C 端实现 总结一下 关键字&#xff1a; Qt、 Qml、 Time、 时间、 系统 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;…

AquilaChat2-34B 主观评测接近GPT3.5水平,最新版本Base和Chat权重已开源!

两周前&#xff0c;智源研究院发布了最强开源中英双语大模型AquilaChat2-34B 并在 22项评测基准中综合能力领先&#xff0c;广受好评。为了方便开发者在低资源上运行 34B 模型&#xff0c;智源团队发布了 Int4量化版本&#xff0c;AquilaChat2-34B 模型用7B量级模型相近的GPU资…

C生万物 | 从浅入深理解指针【第一部分】

C生万物 | 从浅入深理解指针【第一部分】 文章目录 C生万物 | 从浅入深理解指针【第一部分】一、内存和地址1.1 内存1.2 究竟该如何理解编址 二、指针变量和地址2.1 取地址操作符&#xff08;&&#xff09; 三、指针变量和解引用操作符&#xff08;*&#xff09;3.1 指针变…

【excel技巧】excel单元格内如何换行?

Excel表格&#xff0c;在制作完成之后&#xff0c;在输入数据的时候&#xff0c;总是会遇到内容长度太长导致无法全部显示或者破坏表格整体格式。几天分享4个单元格换行的方法给大家。 方法一&#xff1a; 首先我们先介绍一个&#xff0c;通过调整列宽的方式来达到显示全部内…

uniapp接口请求api封装,规范化调用

封装规范和vue中的差不多&#xff0c;都是统一封装成一个request对象&#xff0c;然后在api.js里面调用。 先创建一个utils文件夹&#xff0c;然后里面创建一个request.js&#xff0c;代码如下&#xff1a; export const baseURL 基础url地址const request (options) > …

【爬虫】python打包可执行程序(ui界面制作完成后)

1.安装pyinstaller pip install pyinstaller可能出现连接超时安装不上的情况,可以切换源进行下载 pip install -i http://pypi.douban.com/simple/ pyinstaller2.打包程序 pyinstaller xxxxx.py --noconsole --hidden-import PySide6.QtXml

解决cloudflare pages部署静态页面发生404错误的问题

cloudflare pages是一个非常方便的部署静态页面的sass工具。 但是很多人部署上去以后&#xff0c;访问服务会报404错误。什么原因&#xff1f; 原因如下图所示&#xff1a; 注意这个Build output directory, 这个是部署的关键&#xff01; 这个Build output directory目录的…

竞赛选题 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

Cookie技术

Cookie中文名称为小型文本文件&#xff0c;指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据。 Cookie是由服务器端生成&#xff0c;发送给User-Agent&#xff08;—般是浏览器&#xff09;&#xff0c;浏览器会将Cookie的key/value保存到某个目录下的文…

Harmony 个人中心(页面交互、跳转、导航、容器组件)

个人中心 前言正文一、创建工程二、登录① 更换启动页面② 拓展修饰符③ 页面跳转④ 等待进度条 三、导航栏四、首页① 轮播图② 网格列表 五、我的① 带参数跳转 六、源码 前言 今天是1024&#xff0c;祝各位程序员们&#xff0c;钱多事少离家近&#xff0c;不秃也强bug黄。在…

本机spark 通idea连接Oracle的坑

1. 报错&#xff1a;Exception in thread "main" java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V 查询网上资料&#xff0c;是idea引入的scala运行环境版本与idea默认的scala版本不一样 也就是写的项目中的pom的spark版本与idea默认的版本不…