Linux centos7-systemd

系统启动流程:
    POST→bootsequence→bootloader(MBR)→kernel→initramfs(initrd)→rootfs→/sbin/init
        init:
            centos5:Sys V init
            centos6:Upstart
            centos7:Systemd
        Systemd新特性:
            系统引导时实现服务并行启动
            按需激活进程
            系统状态快照
            基于依赖关系定义服务控制逻辑
        核心概念unit:
            通过配置文件进行标识和配置:文件中主要包含了系统服务(.service)、监听套接字(.socket)、保存的系统快照、以及其他与init相关的信息;
            保存位置:
                /usr/lib/systemd/system/*
                /run/systemd/system/*:优先级高于上面
                /etc/systemd/system/*:优先级高于上面
            unit相当于centos6里/etc/init.d/目录中的脚本,不过unit没有执行权限,类似于配置文件;
        unit类型:
            service unit:扩展名为.service,用于定义系统服务;
            target unit:扩展名为.target,用于模拟centos6中的运行界别概念;
            device unit:扩展名为.device,用于用于定义内核识别的设备;
            mount unit:扩展名为mount,用于定义文件系统挂载点;
            socket unit:扩展名.socket,用于标识进程间通信;
            snapshot unit:扩展名.snapshot,用于管理系统快照;
            swap unit:扩展名.swap,用于标识swap设备;
            automount unit:扩展名.automouont,用于定义文件系统的自动挂载点;
            path unit:扩展名.path,用于定义文件系统中的一个文件或目录;
        关键特性:
            基于socket的激活机制:实现了socket与服务的分离,也就是说默认服务是没有启动的,当有人请求某服务时,systemd会通过处于监听中的socket来临时按需的激活某服务;
            基于bus的激活机制;
            基于device的激活机制:特定硬件接入系统时,systemd会检测其所需要的驱动或服务,然后去激活它;
            基于path的激活机制:某个文件或目录中有数据时,会激活相应的服务或程序,也可以说是通过 监控某路径来决定是否激活相应服务,当路径中的数据改变时;
            系统快照:可以将系统的当前状态保存至某文件中;
            向后兼容sysv、init脚本;
        不兼容特性:
            systemctl命令固定不变;
            非有systemctl命令启动的服务,systemctl无法与之通信,无法管理它们;
            与centos6不同的是,当centos6 切换级别时,是通过开启所有以S开头的服务,关闭所有以K开头的服务,systemctl只能关闭已经启动的服务,而不是实现设定好的某些服务;
        管理系统服务:
            centos7:service unti (兼容之前的服务脚本)
                systemctl COMMAND name.type
                    COMMAND:
                        start:启动服务
                        stop:关闭服务
                        restart:重启服务
                        enable:设置开机启动
                        disable:设置开机不启动
                        status:查看服务状态
                        is-active:查看某服务当前是否启动
                        list-units:查看已激活服务
                            --all:查看所有服务,包括未激活的
                            --type=type:显示指定类型的服务
                        list-unit-files:查看开机自启信息
                    name:服务名称
                    type:服务类型
                        service:服务
                        socket:套接字
                        path:路径
            运行级别:
                0 →runlevel0.target,poweroff.target
                1 →runlevel1.target,rescue.target
                2 →runlevel2.target,multi-user.target
                3 →runlevel3.target,multi-user.target
                4 →runlevel4.target,multi-user.target
                5 →runlevel5.target,graphical.target
                6 →runlevel6.traget,reboot.target
            级别切换:
                init N →systemctl isolate name.target
            获取默认运行级别:
                systemctl get-default
            设置默认级别:
                systemctl set-default name.target
                其实就是删除/etc/systemd/system/目录中原本链接到/usr/lib/systemd/system/目录中的某一个name.target;然后建立新的链接关系;所以可以手动设定;
            切换至紧急救援模式:
                systemctl rescue
            切换至emergency模式:比rescue更彻底的救援模式;
                systemctl rescue
            其他常用命令:
                关机:
                    systemctl halt
                    systemctl poweroff
                重启:
                    systemctl reboot
                挂起系统:
                    systemctl suspend
                快照:
                    systemctl hibernate
                    
                


注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删

猜你喜欢

转载自blog.csdn.net/qq_32501535/article/details/82951890
今日推荐