系统初始化进程与文件、systemd概述、单元类型、切换运行级别、查看系统默认默认运行、永久切换、常见的系统服务(centos)

news2024/10/6 8:40:42

init进程

init进程是Linux系统(“/sbin/init”)中的第一个进程,它是所有其他进程的祖先进程。init进程的进程号(PID)始终为1。它负责启动和停止系统中的所有其他进程,以及处理系统的各种系统级任务。

init进程的主要功能包括:

  1. 运行级别管理:init进程负责根据系统的运行级别启动相应的服务和进程。运行级别是Linux系统中的一种工作状态,包括单用户模式、多用户模式和关机模式等。
  2. 进程管理:init进程负责启动和停止系统中的其他进程,包括系统服务和用户进程。它根据系统配置文件(如/etc/inittab或/etc/init.d)来启动特定的进程。
  3. 系统初始化:当系统启动时,init进程负责执行系统初始化任务,例如加载驱动程序、设置系统参数、挂载文件系统等。
  4. 孤儿进程管理:当一个父进程退出时,init进程会接管它的子进程,并将它们的父进程设置为init进程。这样可以确保没有进程成为孤儿进程,防止资源泄露。
  5. 信号处理:init进程会接收和处理一些系统级别的信号,例如关机信号、重启信号等。

systemd概述

systemd 是一个系统和服务管理器,是 Linux 系统中的一个重要组件。它被设计为替代传统的 init 系统(如 SysV init)。systemd 提供了更快、更可靠的系统启动,并以并行的方式启动服务。以下是 systemd 的一些关键特点和功能:

  1. 并行启动:systemd 支持并行启动系统服务,可以显著缩短系统的启动时间。它会分析服务之间的依赖关系,并根据这些关系决定启动顺序。

  2. 单位文件:systemd 使用单位文件(unit files)来描述和配置系统服务。每个服务都有一个对应的单位文件,其中包括服务的启动命令、依赖关系、环境变量等信息。

  3. 服务管理:systemd 提供了各种命令和工具来管理系统服务。可以使用 systemctl 命令来启动、停止、重启、查询服务状态等。

  4. 日志管理:systemd 使用 journald 来管理系统日志。它采用二进制格式记录日志,提供了更高效的日志存储和查询机制,并支持日志的自动旋转和压缩。

  5. 事件和监控:systemd 支持基于事件和规则的服务管理,可以根据系统状态的变化来触发相应的操作。它还可以对服务进行监控,并在服务出现问题时进行自动恢复。

  6. 用户会话管理:systemd 可以管理用户会话,并提供一些功能如用户登录和注销的追踪,以及对用户会话的资源限制和管理。

systemd单元类型

单元类型扩展名说明
Service.service描述一个系统服务。
Socket.socket描述一个进程间通信的套接字。
Device.device描述一个内核识别的设备文件。
Mount.mount描述一个文件系统的挂载点。
Automount.automount描述一个文件系统的自动挂载点。
Swap.swap描述一个内存交换设备或交换文件。
Path.path描述一个文件系统中文件或目录。
Timer.timer描述一个定时器(用于实现类似cron的调度任务)。
Snapshot.snapshot用于保存一个systemd的状态。
Scope.scope使用systemd的总线接口以编程的方式创建外部进程。
Slice.slice描述居于Cgroup的一组通过层次组织的管理系统进程。
Target.target描述一组systemd的单元。

SysVinit概述

sysvinit是一个用于启动和管理Linux操作系统中初始化进程的工具。它是System V风格的init系统,是早期Linux发行版中使用的默认init系统。

sysvinit的工作原理是通过读取并解析/etc/inittab文件,确定要启动的进程和运行级别。运行级别定义了系统启动时要运行的特定进程集合。通过选择不同的运行级别,可以控制系统启动时要运行的进程。

sysvinit还提供了一些管理系统服务的工具,包括init、halt、reboot、shutdown等命令。通过这些命令,用户可以启动、停止、重启系统和服务。

然而,尽管sysvinit在早期很受欢迎并被广泛使用,但它存在一些缺点。它的进程管理方式较为简单,无法很好地管理并行启动和停止进程。此外,sysvinit的启动过程较为耗时,因为它是一个顺序启动的过程,需要逐个启动每个进程。

因此,随着时间的推移,其他更先进的init系统如systemd等逐渐取代了sysvinit,在现代Linux发行版中成为了默认的init系统。

SysVinit运行级别

运行级别Systemd的target说明
0target关机状态,使用该级别时将会关闭主机.
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护。
2multi-user.target用户定义/域特定运行级别。默认等同于3。
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别。
4multi-user.target用户定义/域特定运行级别。默认等同于3。
5graphical.target图形界面的多用户模式,提供了图形桌面操作环境。
6reboot.target重新启动,使用该级别时将会重启主机。

切换运行级别

1、查看系统的target

runlevel

显示结果中的两个字符分别表示切换前的目标、当前的目 标。若之前尚未切换过运行级别,则第1列将显示“N”。

2、查看系统启动默认的target

systemctl get-default

字符界面

3、init切换系统target

使用传统的init程序进行,使用与运行级别相对于的数字(0~6)作为命令参数。图形界面(5),字符模式(3)

init 5

4、systemctl切换系统target

systemctl isolate multi-user.target

init 0,init 6分别对应关机,与重启。

init 0
init 6

0对应= systemd的  "poweroff.target"   6对应 = systemd的 "reboot.target"目标

systemd关机

systemctl poweroff

systemd重启

systemctl reboot

永久切换 

以上切换均为临时切换,若有永久切换运行级别可通过ln(链接)命令指定当前系统的默认运行级别。

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/ system/default.target

-s 选项表示创建软链接; -f 表示强行删除任何已存 在的目标文件。

常见的系统服务(centos系统)

服务名称

用途简介

备注

atd

延期、定时执行任务

建议关闭

bluetooth

发现、认证蓝牙相关设备

建议关闭

crond

按预定周期执行计划任务

建议开启

irqbalance

多核心CPU处理器的调度支持

建议开启

kdump

记录内核崩溃时的内存信息

建议关闭

lym2-monitor

LVM管理及监控

建议开启

netfs

访问共享文件夹等网络文件系统

建议开启

network

配置及使用网卡、网络地址

建议开启

restorecond

SELinux安全机制的文件监控和恢复功能

建议关闭

rhnsd

访问Red Hat Network,获取通知、提交订阅等

建议关闭

rpcgssd

管理NFS(Network File System,网络文件系统)访问中的客户程序语境

建议关闭

saslauthd

基于文本的身份认证

建议关闭

smartd

监控本地硬盘的状态并发送故障报告

建议开启

smb

文件共享服务

建议关闭

sshd

提供远程登录和管理Linux主机的功能

建议开启

rsyslog

记录内核、系统的日志消息

建议开启

vsftpd

通过FTP(File Transfer Protocol,文件传输协议)提供文件上传、下载功能

建议关闭

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型系列之被我忽视的Assistants API

前言 在这篇文章中,我们提到在GPT4.0 turbo发布时,GPTs和Assistants API的出现使得众多创业者一夜无眠。当时看完之后就被我丢到一边,并没有太多关注,随着我们对RAG和Agent的不断深入了解,蓦然回首,越发感…

HarmonyOS Next开发学习手册——通过startAbility拉起文件处理类应用

使用场景 开发者可以通过调用startAbility接口,由系统从已安装的应用中寻找符合要求的应用来实现打开特定文件的意图,例如:浏览器下应用下载PDF文件,可以调用此接口选择文件处理应用打开此PDF文件。开发者需要在请求中设置待打开…

Redis-实战篇-什么是缓存-添加redis缓存

文章目录 1、什么是缓存2、添加商户缓存3、前端接口4、ShopController.java5、ShopServiceImpl.java6、RedisConstants.java7、查看Redis Desktop Manager 1、什么是缓存 缓存就是数据交换的缓冲区(称为Cache),是存贮数据的临时地方&#xff…

Linux 异步 I/O 框架 io_uring:基本原理、程序示例与性能压测

Linux 异步 I/O 框架 io_uring 前言Linux I/O 系统调用演进io_uring与 Linux AIO 的不同原理及核心数据结构:SQ/CQ/SQE/CQE带来的好处三种工作模式io_uring 系统调用 API 前言 io_uring 是 2019 年 Linux 5.1 内核首次引入的高性能 异步 I/O 框架,能显著…

【干货】Jupyter Lab操作文档

Jupyter Lab操作文档1. 使用须知2. 定制化Jupyter设置主题显示代码行数设置语言更多设置 3. 认识Jupyter界面4. 初用Jupyter运行调试格式化查看源码 5. 使用Jupyter Terminal6. 使用Jupyter Markdown7. 上传下载文件(云服务器中的Jupyter Lab)上传文件到…

SAP的RFID

射频识别 (RFID) 避免了条码扫描的局限性,条码扫描需要对每个条码进行视线访问,并且一次只能用于扫描一个项目。 一次扫描一个标签可能会令人厌烦和压力大,这会增加人为错误的机会。相反,RFID 标签不需要直…

入局AI手机 苹果公布Apple Intelligence

日前,苹果WWDC 2024如期召开。在这持续1个小时44分钟的开发者大会上,苹果在前一个小时里更新了iOS、iPadOS、MacOS等操作系统,而且还首次更新了visionOS。余下的时间全部留给了苹果的“AI大礼包”——Apple Intelligence(苹果智能…

全网最强SpringMVC教程 | 万字长文爆肝SpringMVC(一)

SpringMVC_day01 今日内容 理解SpringMVC相关概念完成SpringMVC的入门案例学会使用PostMan工具发送请求和数据掌握SpringMVC如何接收请求、数据和响应结果掌握RESTful风格及其使用完成基于RESTful的案例编写 SpringMVC是隶属于Spring框架的一部分,主要是用来进行We…

JavaWeb系列六: 动态WEB开发核心(Servlet) 上

韩老师学生 官网文档为什么会出现Servlet什么是ServletServlet在JavaWeb项目位置Servlet基本使用Servlet开发方式说明快速入门- 手动开发 servlet浏览器请求Servlet UML分析Servlet生命周期GET和POST请求分发处理通过继承HttpServlet开发ServletIDEA配置ServletServlet注意事项…

Ollama模型部署工具在Linux平台的部署

1.新建普通用户dmx(可选) [rootnode3 ~]$ useradd dmx2.切换普通用户dmx环境(可选) [dmxnode3 ~]$ su - dmx3.下载ollama-linux-amd64服务 下载ollama-linux-amd64到 ~/server目录,并将ollama-linux-amd64服务重命名为ollamaEED curl -L …

07 - matlab m_map地学绘图工具基础函数 - 绘制等高线

07 - matlab m_map地学绘图工具基础函数 - 绘制等高线 0. 引言1. 关于绘制m_contour2. 关于绘制m_contourf3. 关于绘制m_elev4. 结语 0. 引言 本篇介绍下m_map中添加绘制等高线的一系列函数及其用法,主要函数包括m_elev、m_contour、m_contourf还有一些函数也和绘制…

线性和二次判别分析

线性判别分析 线性判别分析(Linear Discriminant Analysis,LDA)亦称 Fisher 判别分析。其基本思想是:将训练样本投影到低维超平面上,使得同类的样例尽可能近,不同类的样例尽可能远。在对新样本进行分类时&…

Spring+Vue项目部署

目录 一、需要的资源 二、步骤 1.首先要拥有一个服务器 2.项目准备 vue: 打包: 3.服务器装环境 文件上传 设置application.yml覆盖 添加启动和停止脚本 ​编辑 安装jdk1.8 安装nginx 安装mysql 报错:「ERR」1273-Unknown collation: utf8m…

ROS2中的CMakeLists(一)——基础知识

在使用ROS2框架开发机器人应用时,对各个功能包Cmakelist.txt文件的更改尤为重要。本系列旨在总头开始介绍Cmakelist.txt各条语句的意义和内涵。 Cmake已经是高度集成的构建工具,其作用是在不同开发环境下生成makefile文件,以此来执行make指令…

聊聊 System.Linq.Dynamic,以及分享一个使用 System.Linq.Dynamic 扩展 LINQ 查询的详细例子

前言:System.Linq.Dynamic 是什么? System.Linq.Dynamic 扩展了 .NET 中的 LINQ 查询功能,通过它,我们可以在运行时动态构造 LINQ 查询表达式,就像是写原生 SQL 语句一样,更加灵活直观。 利用 System.Lin…

FPGA学习笔记(5)——硬件调试与使用内置的集成逻辑分析仪(ILA)IP核

如果要对信号进行分析,可以使用外置的逻辑分析仪,但成本较高,对初学者来说没有必要,可以使用Xilinx Vivado内自带的逻辑分析仪IP核对信号进行分析,不过需要占用一定的芯片资源。 本节采用上一节配置的LED灯闪烁代码&a…

YOLOv5改进(八)--引入Soft-NMS非极大值抑制

文章目录 1、前言2、各类NMS代码实现2.1、general.py 3、各类NMS实现3.1、Soft-NMS3.2、GIoU-NMS3.3、DIoU-NMS3.4、CIoU-NMS3.5、EIoU-NMS 4、目标检测系列文章 1、前言 目前yolov5使用的是NMS进行极大值抑制,本篇文章是要将各类NMS添加到yolov5中,同时…

2024最适合初学者人手一本的LLM大语言模型综述,爆火全网!(附PDF)

今天给大家推荐一本大模型(LLM)这块的一本外文书,经过整理已经出中文版了,就是这本《大型语言模型综述》!本书在git上有9.2k star,还是很不错的一本大模型方面的书。 本教程内容主要内容:中文版…

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业…