系统启动流程

POST --> bootloader  --> MBR工作 --> kernel(initramfs/initrd) --> ro rootfs --> init


init

用户空间的一切与管理相关的事务由Init程序完成,特权操作发起syscall由内核完成


init分类

谢烟客---------Linux之CentOS 7 systemd


init新特性

* 系统引导时,并行启动进程,类似于upstart

* 按需**进程: 节约内存,启动速度快

* 支持系统快照

* 基于依赖控制服务启动逻辑 


系统管理的核心概念: systemd unit

配置文件标识和配置:socketsnapshot服务程序、以及init相关的信息

配置文件

谢烟客---------Linux之CentOS 7 systemd


TYPE:

谢烟客---------Linux之CentOS 7 systemd


关键特性

基于socket**机制:系统启动用不到的服务,由socketunit代为监听,在被访问时临时启动服务。

基于dbus**机制:支持dbus进程间通信的程序,可以按需**

基于device**机制:在某个硬件设备**或变得可用时的**机制

基于path**机制:某个文件路径变得可用或**时,**相关服务

基于快照**机制:保存unit的当前状态信息于持久存储设备中

兼容SysV脚本:兼容有限,支持有限个运行级别


不兼容

* 没有脚本灵活,systemctl命令格式固定

* 非由systemd服务启动的服务,systemd服务不能控制

* systemd级别切换时,只有将运行中的停止,停止中的启动。

    SysV脚本init切换运行级别时,例如3-->2
    将/etc/rc.d/rc.2/*下的所有服务程序
        K* stop
        S* start

* systemctl不会读取标准输入数据流

* 跟用户的PATH环境没有关系

* unit均受5min超时时长,时间一过,将会退出



CentOS 7 systemd管理系统服务


基本管理

谢烟客---------Linux之CentOS 7 systemd

谢烟客---------Linux之CentOS 7 systemd


服务状态注解

谢烟客---------Linux之CentOS 7 systemd

谢烟客---------Linux之CentOS 7 systemd


查看服务启动或停止、依赖关系、查看运行级别

systemctl list-units --type TYPE [--all]

谢烟客---------Linux之CentOS 7 systemd

谢烟客---------Linux之CentOS 7 systemd


服务状态注解

谢烟客---------Linux之CentOS 7 systemd


查看开机是否自动启动

谢烟客---------Linux之CentOS 7 systemd


设定服务开机是否自启

谢烟客---------Linux之CentOS 7 systemd


运行级别管理

name.target

谢烟客---------Linux之CentOS 7 systemd


查看运行级别


级别管理

谢烟客---------Linux之CentOS 7 systemd

设定图形:
    删除/etc/systemd/system/default.target
    ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target
设定字符:
    删除/etc/systemd/system/default.target
    ln -s /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target


其他命令

谢烟客---------Linux之CentOS 7 systemd

谢烟客---------Linux之CentOS 7 systemd


unit配置文件

[Unit]
Description=描述信息
After=定义依赖关系
[Service]
程序
执行的命令
启动
重载
停止