Linux:Day16(上)

Systemd:

  init:

    CentOS 5:SysV init

    CentOS 6:Upstart

    CentOS 7:Systemd

  Systemd新特性:

    系统引导时实现服务并行启动;

    按需激活进程;

    系统状态快照;

    基于依赖关系定义服务控制逻辑;

  核心概念: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 init:.swap,用于标识swap设备;

    Automount unit:.automount,文件系统的自动挂载点;

    Path unit:.path,用于定义文件系统中的一个文件或目录;

  关键特性:

    基于socket的激活机制:socket与服务程序分离;

    基于bus的激活机制;

    基于device的激活机制;

    基于path的激活机制;

    系统快照:保存各unit的当前状态信息于持久存储设备中;

    向后兼容sysv init脚本;

  不兼容:

    systemctl命令固定不变

    非由systemd启动的服务,systemctl无法与之通信

  管理系统服务:

    CetntOS 7:service unit

      注意:能兼容早期的服务脚本

      命令:systemctl COMMAND name.service

    启动:service name start ==> systemctl start name.service

    停止:service name stop ==> systemctl stop name.service

    重启:service name restart ==> systemctl restart name.service

    状态:service name status ==> systemctl status name.service

    条件式重启:service name condrestart ==> systemctl try-restart name.service

    查看某服务当前激活与否的状态:systemctl is-active name.service

    查看所有已激活的服务:

      systemctl list-units --type service

    查看所有服务:

      systemctl list-units --type service --all

    chkconfig命令的对应关系:

      设定某服务开机自启:chkconfig name on ==> systemctl enable name.service

      禁止:chkconfig name off ==> systemctl disable name.service

      查看所有服务的开机自启状态:

        chkconfig --list ==> systemctl list-unit-files --type service 

  target units:

    unit配置文件:.target

    运行级别:

      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.target,reboot.target

    级别切换:

      init N ==> systemctl isolate name.target

    查看级别:

      runlevel ==> systemctl list-units --type target

    获取默认运行级别:

      /etc/inittab ==> systemctl get-default

    修改默认级别:

      /etc/inittab ==> systemctl set-default name.target

    切换至紧急救援模式:

      systemctl rescue

    切换至emergency模式:

      systemctl emergency

  其它常用命令:

    关机:systemctl halt、systemctl poweroff

    重启:systemctl reboot

    挂起:systemctl suspend

    快照:systemctl hibernate

    快照并挂起:systemctl hybrid-sleep

原文地址:https://www.cnblogs.com/sq5288/p/10628809.html