linux自动启动服务依赖,CentOS 7:浅谈系统服务Systemd与System V

浅谈Linux 系统服务Systemd

1. daemon与Service

1.1 早期daemon主要分类

1.1.1 服务的启、停、状态与查看的方式

1.1.2 服务的启动

1.1.3 服务依赖性问题

1.1.4 运行级别的分类

1.1.5 制定运行级别默认启动的服务

1.1.6 运行级别切换

1.2 Service相关目录

1.3 service的管理工具/sbin/service

1.4 service的自动启动控制工具/sbin/chkconfig

1.5 xinetd服务

2. Systemd系统配置服务

2.1 Systemd优势

2.2 systemd的配置文件

1. daemon与Service

1.1 早期daemon主要分类

1.1.1 服务的启、停、状态与查看的方式

(1)启动:/etc/init.d/daemon start

(2)关闭:/etc/init.d/daemon stop

(3)重启:/etc/init.d/daemon restart

(4)查看:/etc/init.d/daemon status

1.1.2 服务的启动

(1)独立启动模式(stand alone),该服务不需要其他服务来管理,直接常驻内存,因此运行速度启动速度极快。

(2)超级守护进程(super daemon),也称总管程序(super daemon),它由特殊的xinetd和inetd提供socket对应或port对应的管理,只有当有用户要求该socket或端口时,该服务才会被启动。

1.1.3 服务依赖性问题

简单地说,依赖性就是,想要使用A服务,但是A服务必须在B服务启动后才能使用,而B服务有可能依托于C服务,这样就形成一个条状的服务依懒性,其实还有更复杂的依赖形式,读者可自行查阅。

1.1.4 运行级别的分类

基本上Linux提供7个运行级别,分别是0-6,其中1(单人维护模式)、3(命令行模式,字符界面)、5(图形界面)。各个运行级别的脚本是通过**/etc/rc.d/rc[0~6]/SXXdaemon链接到/etc/init.d/daemon**,链接文件名[SXXdaemon]的功能为:S为启动该服务,XX是数字,为启动顺序,由于SXX的设置,使得服务能够有序执行,并且依懒性问题也能得到解决。

1.1.5 制定运行级别默认启动的服务

通过以下命令处理默认的启动,不启动,查看默认的启动与不启动daemon。

默认要启动:chkconfig daemon on

默认不启动:chkconfig daemon off

查看启动与否:chkconfig –list daemon

1.1.6 运行级别切换

从命令行runlevel 3切换到 runlevel 5(图形界面),直接运行init 5。

1.2 Service相关目录

如下图/etc下的一级目录,我们发现**/etc/init.d -> /etc/rc.d/init.d**,它们之间做了硬链接,事实上,/etc/rc.d/init.d包含了所有的service的控制脚本。

/etc/rc*.d -> /etc/rc.d/rc*.d : /etc/rc.d/rc*.d 下包含了所有的service的自动启动选项的配置

1.3 service的管理工具/sbin/service

可以使用工具/sbin/service来查看和管理系统上所有的service,

查看状态:/sbin/service --status-all

启停某个服务:/sbin/service XXX start/stop/restat

打开/sbin/service脚本,我们可以看到其实service命令实现很简单,就是遍历/etc/init.d (-> /etc/rc.d/init.d)下的所有的service控制脚本,执行相应service控制脚本中的操作。

1.4 service的自动启动控制工具/sbin/chkconfig

使用工具/sbin/chkconfig来简化service启动选项的配置。

用来查看所有服务的启动选项配置:chkconfig --list

用来查看iptables service的启动选项的配置:chkconfig iptables

1.5 xinetd服务

xinetd(eXtended InterNET services daemon),它取代了inetd,并且提供了访问控制、加强的日志和资源管理功能,已经成了Red Hat 7 和 Mandrake 7.2的Internet标准超级守护进程。

2. Systemd系统配置服务

2.1 Systemd优势

(1)并行处理所有服务,加速开机流程。

Init启动脚本是顺序进行的,没有依懒性的服务,也必须排队等待前面的服务执行完,才能启动,而systemd可以同时启动服务,提高用户体验度。

(2)On-demand启动方式

Systemd是搭配systemctl命令来处理的,无需额外的命令来支持。早期的SystemV需要init/chkconfig/service等命令,并且由于systemd常驻内存,响应速度极快。

(3)自我依赖性检查

对于新手来说,这个功能很香,早期的安装一个软件时,有可能依赖几十个包,但是systemd可以自动开启服务依赖性检查,如果需要启动A服务,倘若A服务依赖于B服务,系统会帮你自动开启B服务。

(4)分类明确,易于管理

Systemd下管理的服务居多,因此systemd定义了不同类型的服务单位(Unit),包括“service, socket, target, path, snapshot, timer”等,后续的文章中会讲几个常用和常见的类型。

(5)向下兼容init服务

由于某种原因,systemd事实上并不能完全取代init, 主要表现在以下几点:

1)除了runlevel 1、3、5在systemd的target类型服务单元有对应,其余没有对应。

2)systemctl语法有限制,而/etc/init.d/daemon是纯脚本,可以自定义参数。

3)systemd启动过程中,无法与管理员通过标准的输入传入信息。

4)如果某个服务是管理员手动启动,而非使用systemctl启动,则systemd将服务检测的该服务,从而不能管理。

2.2 systemd的配置文件

(1)/usr/lib/systemd/system/: 每个服务最主要的启动脚本设置,类似于之前的/etc/init.d

(2)/run/systemd/system/: 系统执行过程中所产生的服务脚本,优先级高于(1)

(3)/etc/systemd/system/: 管理员根据主机系统的需求所建立的执行脚本,优先级高于(2)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值