Centos7下的systemd管理

systemd是由红帽公司的一名叫做Lennart Poettering的员工开发,systemd是Linux系统中最新的初始化系统(init),它主要的设计目的是克服Sys V 固有的缺点,提高系统的启动速度,systemd和upstart是竞争对手。
Ubantu上使用的是upstart的启动方式;
CentOS7上使用systemd替换了Sys V;
Systemd目录是要取代Unix时代依赖一直在使用的init系统,兼容SysV和LSB的启动脚本,而且能够在进程启动中更有效地引导加载服务。

system:系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其他进程,根据管理,字母d是守护进程(daemon)的缩写,systemd这个名字的含义就是它要守护整个系统。

systemd:
系统启动过程:
POST -->Boot sequeue(BIOS) -->BootLoader(MBR)-->Kernel(ramdisk) --> rootfs --> /sbin/init
init:
CentOS5:sysvinit
CentOS6:Upstart
CentOS7:Systemd

  systemd的新特性 
        系统引导实现服务并行启动; 
        按需激活进程; 系统状态快照; 
        基于依赖关系定义的服务控制逻辑; 

  核心概念:unit 
        unit由其相关配置文件进行标识、识别、配置;主要包含了系统服务监听的socket、保存的快照及其他与init相关的信息; 
        这些配置文件主要保存在: 
              /usr/lib/systemd/system 
              /run/systemd/system 
              /etc/systemd/system 

  unit常见类别: 
        service unit:扩展名为.service,用于定义系统服务; 
        target unit:扩展名为.target,用于模拟实现"运行级别"; 
        device unit:扩展名为.device,用于定义内核识别的设备; 
        mount unit:扩展名为.mount,用于定义文件系统挂载点; 
        socket unit:扩展名为.socket,用于标识进程间通信用到的socket文件; 
        snapshot unit:扩展名为.snapshot,用于管理系统快照; 
        swap unit:扩展名为.swap,用于管理swap设备; 
        automount unit:扩展名为.automount,用于文件系统自动挂加载设备; 
        path unit:扩展名为.path,用于文件系统的一个文件或者目录;如果不存在可以自动创建。 

  关键特性: 
        基于socket的激活机制:socket与程序是分离的; 
        基于bus(总线)的激活机制; 
        基于device(设备)的激活机制:可以自动激活设备 
        基于path的激活机制; 
        系统快照:保存各unit的当前状态信息于之久存储设备中; 
        向后兼容sysvinit脚本;/etc/init.d/ 

  不兼容: 
        systemctl的命令是固定不变的; 
        非由systemd启动的服务,systemd无法探测其启动状态(无法控制此服务); 

  管理系统服务: 
        CentOS7:service类型的unit文件; 
              systemctl命令: 
                    systemctl start/stop/restart/status name.service 
                    条件式重启:systemctl try-restart name.service 
                    重载或重启服务:systemctl reload-or-restart name.service 
                    重载或条件式重启服务:systemctl reload-or-try-restart name.service 

                    查看某服务当前激活与否的服务状态:systemctl is-active name.service 
                    查看所有已激活的服务:systemctl list-units -t service 
                    查看所有(已激活或者未激活)的服务:systemctl list-units -t service --all 

                    设置服务开机自启:systemctl enable name.service 
                    设置服务开机自启:systemctl disable name.service 
                    查看某服务是否开机自启:systemctl is-enabled name.service 

                    禁止某服务开机自启:systemctl mask name.service 
                    取消此禁止:systemctl unmask name.service 
                    查看服务的依赖关系:systemctl list-dependencies name.service 

  管理target units: 
        运行级别: 
              0-->关机 runlevel0.target,poweroff halt 
              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-user.target 
              6-->重启级别 runlevel6.target,reboot.target 

        级别切换:
              systelctl isolate name.target 
        查看当前级别:systemctl list-units --type target 【-a】 
        获取默认运行级别:systemctl get-default 
        需改默认运行级别:systemctl set-default name.target 

        切换至紧急救援模式:systemctl rescue 
        切换至emergency模式(额外驱动服务都不被加载):systemctl emergency 

  其他常用命令: 
        关机:systemctl halt,systemctl poweroff 
        重启:systemctl reboot 挂起:systemctl suspend 
        快照:systemctl hibernate 
        快照并挂起:systemctl hybrid-sleep 

。。。。。。。

posted @ 2020-12-01 16:22  PlayOn  阅读(121)  评论(0编辑  收藏  举报