systemd启动是先运行/lib/systemd/system目录还是先运行/etc/systemd/system/目录
时间: 2023-02-07 16:50:50 浏览: 140
systemd 在启动时会先运行 `/lib/systemd/system` 目录中的单元文件,然后再运行 `/etc/systemd/system` 目录中的单元文件。
在运行 `/etc/systemd/system` 目录中的单元文件之前,systemd 会先运行 `/etc/systemd/system` 目录中的预安装单元文件,即以 `.wants` 或 `.required` 为后缀的单元文件。这些单元文件可能会指定其他的单元文件应当在它们之前启动。
需要注意的是,systemd 会优先使用 `/etc/systemd/system` 目录中的单元文件,如果这个目录中存在和 `/lib/systemd/system` 目录中同名的单元文件,systemd 将忽略 `/lib/systemd/system` 目录中的单元文件。
相关问题
systemd启动什么时候运行/lib/systemd/system目录,代码在哪
### 回答1:
systemd启动时会运行/lib/systemd/system目录中的所有服务。这些服务通常是由系统管理员安装的第三方服务或系统自带的服务,用于控制系统的启动、关闭和运行过程。这些服务的代码可能位于任何位置,但通常会位于/usr/lib或/usr/local/lib目录中。
### 回答2:
systemd是一个在Linux系统上用于控制系统进程和服务管理的工具。它的启动时机和运行代码的位置如下所述:
systemd的启动时机通常是在系统引导过程中,在内核引导完成后。/systemd目录下的system子目录是存放系统服务的地方,具体路径为/lib/systemd/system。
在这个目录中,每个系统服务都会有一个以.service为后缀的文件,这个文件包括服务的详细配置和启动参数。这些文件由系统管理员或软件包管理工具提供,并且一般都是只读不可更改的。
这些服务文件包含了各自服务的内容,包括服务的名称、描述、依赖关系、启动顺序等。当系统启动时,systemd会解析这些服务文件,并根据配置的参数来执行相应的操作,比如启动、停止、重启服务等。
对于服务启动时需要运行的代码,可以通过systemd的配置文件中指定ExecStart参数来实现。这个参数可以指定一个可执行文件或命令,systemd会在启动服务时自动执行该命令。
总之,systemd的服务启动时机是在系统引导过程中,而系统服务的配置文件一般存放在/lib/systemd/system目录下。服务的代码可以通过配置文件中的ExecStart参数指定。
### 回答3:
systemd是Linux系统的一个初始化系统和服务管理器。在启动时,systemd会运行/lib/systemd/system目录下的系统服务单元文件。
systemd的配置文件主要分布在以下几个目录中:
- /usr/lib/systemd/system:系统安装的服务单元文件。
- /etc/systemd/system:管理员自定义的服务单元文件。
在/lib/systemd/system目录中,系统服务单元文件以.service为扩展名,包含了服务的各种配置和运行参数。这些服务单元文件定义了整个系统的启动顺序、依赖关系和运行级别。其中一些常见的系统服务单元包括:
- sshd.service:SSH服务器服务单元。
- httpd.service:Apache HTTP服务器服务单元。
- network.service:网络服务单元。
每个服务单元文件中的具体代码由多个配置项组成,其中最重要的是[Unit]、[Service]和[Install]这三个段。
[Unit]段定义了单元的元数据,比如单元的描述、依赖关系等。
[Service]段定义了服务的具体配置项,比如执行的命令、环境变量等。
[Install]段定义了服务的启用方式和位置。
在systemd启动过程中,它会根据配置文件中定义的各个服务的启动顺序和依赖关系,依次加载并运行这些服务。这样保证了系统能够按照正确的顺序启动,并且能够自动处理各个服务间的依赖关系。
ln -s /lib/systemd/system/redis.service /etc/systemd/system/multi-user.target.wants/redis.service
ln -s /lib/systemd/system/redis.service /etc/systemd/system/multi-user.target.wants/redis.service命令的作用是创建一个符号链接,将/lib/systemd/system/redis.service链接到/etc/systemd/system/multi-user.target.wants/目录下的redis.service文件。这样做的目的是将redis.service服务添加到系统启动时要运行的服务列表中。通过创建这个符号链接,当系统启动时,redis服务将被自动启动。 <span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Linux 问题解决 :/lib/systemd/systemd-journald 占用内存过高](https://blog.csdn.net/zhangpeterx/article/details/90666108)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)解决方案](https://blog.csdn.net/xufengduo/article/details/100740129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]