CentOS7的服务管理方式

本文介绍了CentOS7从init进程转向systemd的原因和优势,包括服务并行启动、按需激活进程、系统状态快照等功能。systemd通过unit配置文件管理资源,维护服务控制逻辑,并提供启动、停止、重启等操作。此外,还详细讲解了service类型的unit文件配置和日志管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在centos5、centos6中,linux的启动一直采用init进程来进行管理。从centos7开始,放弃了采用init进程,从而使用systemd来代替init进程。

对于init进程来说有两个缺点:

一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。

二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。

为了解决init的问题,systemd被诞生出来,为系统的启动和管理提供一整套解决方案。systemd在诞生之时也受到了众多人的异议。

由于它过于庞大、复杂,导致背离了unix一切从简的原则。但不可否认它的功能强大,使用方便。

systemd是Linux系统的一套基本构建块。它提供了一个系统和服务管理器,它以PID 1的形式运行并启动系统的其余部分。

1. 系统引导时实现服务并行启动

systemd 提供了比 upstart 更激进的并行启动能力,采用了 socket / D-Bus activation 等技术启动服务。

一个显而易见的结果就是:更快的启动速度。为了减少系统启动时间,systemd 的目标是:

尽可能启动更少的进程。

尽可能将更多进程并行启动。

2. 按需激活进程

sysvinit系统在初始之前,会将有所有可能启动的后台服务进程全部启动。并且系统在等待这些进程全部运行完之后才会让用户进行登录。这样就导致了时间以及资源的浪费。

systemd则采用按需启动的方式,只有当你真正请求启动某些服务时才会启动。而且服务在运行结束之后,systemd可以关闭它,等下次请求时再次启动。

3. 系统状态快照

systemd可以临时保存当前所有的单元配置文件,或者从前一个快照中恢复单元配置文件。为了保存当前系统服务状态,systemd可以动态的生成单元文件快照。

4. 基础依赖关系定义服务控制逻辑

系统启动过程是由很多的独立工作共同组成的,这些工作之间可能存在依赖关系,比如挂载一个 NFS 文件系统必须依赖网络能够正常工作。

Systemd 虽然能够最大限度地并发执行很多有依赖关系的工作,但是类似"挂载 NFS"和"启动网络"这样的工作还是存在天生的先后依赖关系,无法并发执行。

对于这些任务,systemd 维护一个"事务一致性"的概念,保证所有相关的服务都可以正常启动而不会出现互相依赖,以至于死锁的情况。

1. unit配置文件

systemd管理着许多的资源,可以认为每一个资源就是unit(单元)unit由其相关的配置文件进行标识、识别和配置;

文件中主要包含了系统服务、监听的socket、保存的快照以及其他与init相关的信息。这些配置文件主要保存在:

①/etc/systemd/system  存放系统启动的默认级别及启动的unit的软连接,优先级最高。
②/run/systemd/system,系统执行过程中产生的服务脚本,优先级次之。
③/usr/lib/systemd/system 存放系统上所有的启动文件。优先级最低

Systemd 默认从目录/etc/systemd/system/读取配置文件。

但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录。

2. unit常见类型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值