zoukankan      html  css  js  c++  java
  • 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
                        
                    


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

  • 相关阅读:
    程序员的自我修养 符号修饰 函数签名 以及一个引申的问题: extern "c"
    Spring.NET学习笔记(1)基本依赖注入
    Spring.NET学习笔记(3)注册事件注入
    Spring.NET学习笔记(2)依赖注入细节
    jQuery LigerUI 使用教程入门篇
    Spring.NET学习笔记(5)对象生命周期和创建者对象
    【C#.NET】C#皮肤与主题应用实例
    【VB/C#】Kill进程
    【C#.NET】C#用户控件的使用
    【C#.NET】C#创建多语言网站
  • 原文地址:https://www.cnblogs.com/guowei-Linux/p/9787317.html
Copyright © 2011-2022 走看看