【Linux】几种常见配置文件介绍

embedded/2024/10/9 7:19:36/

配置文件目录

linux 系统中有很多配置文件目录

/etc/systemd/system

/lib/systemd/system 

/usr/lib/systemd/system 【结果就是这个目录配置文件是源头】

这三者有什么样的关系呢?

以下是网络上找的资料汇总,并加了一些操作验证。方便后期使用

介绍

目录/lib/systemd/system 以及/usr/lib/systemd/system 其实指向的是同一目录,在根目录 / 目录下执行命令 ll ,看下图

[/usr]/lib/systemd/system/ 该目录中包含的是软件包安装的单元

是说通过 yum、dnf、rpm 等软件包管理命令管理的 systemd 单元文件,都放置在该目录下。

[/usr]/lib/systemd/system/The expectation is that `/lib/systemd/system` is a directory that should only contain systemd unit files which were put there by the package manager (YUM/DNF/RPM/APT/etc).

/etc/systemd/system/(系统管理员安装的单元, 优先级更高) 

Files in /etc/systemd/system are manually placed here by the operator of the system for ad-hoc software installations that are not in the form of a package. This would include tarball type software installations or home grown scripts.

在一般的使用场景下,每一个 Unit(服务等) 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit 。
Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在这个目录。 systemctl enable 命令用于在上面两个目录之间,建立符号链接关系。如下图,我设置了Docker的开机启动,然后就把/etc/systemd/system/multi-user.target.wants/docker.service 链接到 /usr/lib/sytemd/system/docker.service 文件。

与之对应的,systemctl disable 命令用于在两个目录之间,撤销符号链接关系,相当于撤销开机启动。

虽然在/etc/systemd/system/目录下放置的是系统管理员安装的单元,但是实际使用过程中,用户可以自定义服务配置文件,并且放置在该目录,将该服务的配置文件的优先级提高。

优先级

systemd 的使用大幅提高了系统服务的运行效率, 而 unit 的文件位置一般主要有三个目录:

Table 1.  Load path when running in system mode (--system).┌────────────────────────┬─────────────────────────────┐│Path                    │ Description                 │├────────────────────────┼─────────────────────────────┤│/etc/systemd/system     │ Local configuration         │├────────────────────────┼─────────────────────────────┤│/run/systemd/system     │ Runtime units               │├────────────────────────┼─────────────────────────────┤│/lib/systemd/system     │ Units of installed packages │└────────────────────────┴─────────────────────────────┘

这三个目录的配置文件优先级依次从高到低,如果同一选项三个地方都配置了,优先级高的会覆盖优先级低的。

系统安装时,默认会将 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 级别的,才在这里做修改。

附 systemd 介绍【CSDN】

服务设定位置:

  • /usr/lib/systemd/system/
  • /run/systemd/system/
  • /etc/systemd/system/(一般为连接文件)

服务统一管理:systemd

service 设定文件:

  • /usr/lib/systemd/system/*.service: 预设设定文件
  • /etc/systemd/system/system/*.service.d/: 用户个性化设定文件,会被加入设定
  • /etc/systemd/system/system/*.service.wants/: 连结文件,启动该服务后推荐启动的其他服务
  • /etc/systemd/system/system/*.service.requires/: 连结文件,启动该服务之前,需要预先启动的服务
  • /run/systemd/generator.late 使用 systemd-sysv-generator 工具处理 SysV init 脚本(即:/etc/init.d/*),自动生成.service 文件

http://www.ppmy.cn/embedded/124940.html

相关文章

C++ STL中 set 和 map 的区别

目录 1.引言 2.set 3.map 4.共同点 5.不同点 6.高级用法与注意事项 7.总结 1.引言 在C的标准模板库(STL)中,set和map是两种常用的容器,它们提供了不同的功能和使用场景。尽管它们底层都基于红黑树实现,有许多相…

Collection 和 Collections 有什么区别?

Collection 和 Collections 在 Java 中是两个截然不同的概念,它们之间的主要区别体现在定义、性质、功能和使用上。 一、定义与性质 Collection 定义:Collection 是 Java 集合框架中的一个根接口,表示一组对象的集合。性质:它是一…

Java入门(基础,常见API,JVM,JUC并发编程)

一.javaSE Java初学者软件安装与idea快捷键-CSDN博客 Java基本概念(新手入门)_阿伟java资料-CSDN博客 二.常见API JavaAPI-CSDN博客 三.JVM JVM入门-CSDN博客 四.JUC并发编程 JUC并发编程-CSDN博客

【SQL】掌握SQL查询技巧:数据筛选与限制

目录 1. DISTINCT:避免重复记录1.1 示意图1.2 使用场景 2. LIMIT:控制查询结果的数量2.1 示意图2.2 使用场景 3. OFFSET:跳过前几行3.1 示意图3.2 使用场景 4. WHERE子句:精细控制数据过滤4.1 示意图4.2 运算符详细说明4.3 基本条…

边缘端大模型是怎么部署的?重点关注哪些?

写在前面 在设备端运行的大语言模型(LLMs),即指在边缘设备上运行LLMs,因其出色的隐私保护、低延迟和节省带宽的特点而引起了广泛关注。然而,与功能更为强大的云中心相比,设备端LLMs的能力本质上受到边缘设…

旅游避坑指南

1.火车站旁白的小摊贩,还有周边的小饭店百分之百是黑店,不仅难吃要死而且巨黑!!! 可以地图上搜索附近的大型商超,例如泰安市的银座商超,里面的东西不仅好吃而且价格透明,还有很多当…

Qt 6 相比 Qt 5 的主要提升与更新

自从 Qt 6 发布以来,作为 Qt 框架的一个重大版本更新,它在多个核心方面进行了深度优化和改进。与 Qt 5 相比,Qt 6 不仅提升了性能,还改进了对现代硬件和图形 API 的支持,并增强了开发者的工作流程。本文将详细介绍 Qt …

ubuntu24开启启动脚本

因为我是在之前装的是windows和ubuntu双系统,所以想在ubuntu中自动挂载和开启时做些自己的脚本处理开发环境。 我的脚本如下: truedei@truedei-code:~$ cat mount.shsudo umount /media/truedei/*#sudo ntfsfix /dev/sda3 #sudo ntfsfix /dev/sda4 #sudo ntfsfix /dev/sda5…