设为首页 收藏本站
查看: 1247|回复: 0

[经验分享] CentOS7系统——systemd特性

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-21 09:11:55 | 显示全部楼层 |阅读模式
一、init发展史:
    Centos 5 :SysV init
    Centos 6 :Upstart
    Centos 7 :Systemd

二、Systemd的特性:
    1,系统引导时实现服务并行启动
    2,按需启动守护进程
    3,自动化的服务依赖关系管理
    4,同时采用D-Bus总线式和Socket式激活服务
    5,系统状态快照

三、核心概念:unit
    unit由基于相关配置文件进行标识,识别和配置;文件中主要包含了系统服务、监听的socket、保存的快照以及其它init相关的信息,这些配置文件主要保存在:
    /usr/lib/systemd/system:每个服务最主要的启动脚本设置,类似于之前的/etc/init.d/
    /run/systemd/system:系统执行过程中所产生的服务脚本,比上面目录优先运行
    /etc/systemd/system:管理员建立的执行脚本,类似于/etc/rc.d/rcN.d/Sxx类的功能,比上面目录优先运行

四、unit常见类型:
    Service unit:文件扩展名为.service,用于定义系统服务
    Target unit:文件扩展名为.target,用于模拟运行级别
    Device unit:文件扩展名为.device,用于定义内核识别的设备
    Mount unit:文件扩展名为.mount,定义文件系统挂载点
    Socket unit:文件扩展名为.socket,用于标识进程间通信用到的socket文件,也可在系统启动时,延迟启动服务,实现按需启动
    Swap unit:文件扩展名为.swap,用于标识swap设备
    Snapshot unit:文件扩展名为.snapshot,用于管理系统快照
    Path unit:文件扩展名为.path,用于定义文件系统中的一个文件或目录,常用于当文件系统变化时,延迟激活服务,如:spool 目录
    Automount unit:.automount,文件系统的自动挂载点

五、关键特性:
    1,基于socket的激活机制,socket与服务程序分离
    2,基于d-bus激活机制
    3,基于device的激活机制
    4,基于path的激活机制
    5,系统快照,保存unit的当前状态信息持久存储设备中
    6,向后兼容SysV init脚本:/etc/init.d

六、Systemd也有不兼容的情况:
    service的脚本格式不完全固定,可以添加
    直接使用程序本身的可执行程序启动的服务,使用service命令可以探测到工作状态并进行管理
    systemctl的unit格式是固定不变的,不可以自行添加格式
    非由systemd启动的服务,systemctl无法控制此服务
    (可以自行编写unit脚本,就可以使用systemctl进行管理了)

七、Centos 7 service类型的systemctl命令
  1、systemctl [option] COMMAND [name]
    启动:service service-name start=>systemctl start service-name
    停止:service service-name stop=>systemctl stop service-name
    重启:service service-name restart=>systemctl restart service-name
    查看状态:service service-name status=>systemctl status service-name
            查看unit类型:Systemctl –t help
    条件式重启:service service-name condrestart=>systemctl try-restart service-name
    重载或重启:systemctl reload-or-restart service-name
    重载或条件重启:systemctl reload-or-try-restart service-name

  2、状态相关命令:
    查看所有服务:systemctl list-units -t service -a
    只查看服务单元的状态:systemctl -t service
    查看某服务当前激活与否的状态:systemctl is-active service-name
    查看已激活的所有服务:systemctl list-units -t service
    列出失败的服务:systemctl --failed -t service
    查看所有服务的开机自启状态:chkconfig --list ==> systemctl list-unit-files -t service
    查看服务是否开机自启:systemctl is-enabled name.service

    设置服务开机自启:chkconfig service-name on=>systemctl enable service-name
    禁止服务开机自启:chkconfig service-name off=>systemctl disable service-name
    禁止服务设定为开机自启:systemctl mask service-name
    取消禁止服务设定为开机自启:systemctl umask service-name
    查看某服务的依赖关系:sysemctl list-dependencies service-name
    杀掉进程:systemctl kill 进程名

  3、服务状态指示
    systemctl list-units -t service -a 显示所有服务状态
    loaded:Unit配置文件已处理
    active(running):一次或多次持续处理的运行
    active(exited):成功完成一次性的配置
    active(waiting):运行中,等待一个事件
    inactive:不运行
    enabled:开机启动
    disabled:开机不启动
    static:开机不启动,但可被另一个启用的服务激活

八、管理target units
  1、运行级别:0-6
        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

   2、级别查看及切换:
        级别切换:init N=>systemctl isolate name.target
            注意:只有当前target文件中AllowIsolate=yes才能切换
        级别查看:runlevel=>systemctl list-units -t target
        查看所有级别:systemctl list-units -t target -a
        查看默认运行级别:systemctl get-default
        修改默认运行级别:systemctl set-default name.target

        切换至救援模式:systemctl rescuce
        切换至紧急模式:systemctl emergency
        驱动安装有问题时,可以进入此模式卸载驱动(最简洁的模式)

   3、其它常用命令:

        关机:systemctl poweroff|halt
        重启:systemctl reboot
        挂起:systemctl suspend
        快照:systemctl hipernate
        快照并挂起:systemctl hybrid-sleep

九、service unit文件
  1、通常由三部分组成:

    [unit]:定义与unit类型无关的通用选项,用于提供unit的描述信息、unit行为及依赖关系等
    [service]:定义与特定类型相关的专用选项,此处为service类型
    [Install]:定义由"systemctl enable"以及"systemctl disable"命令实现服务启用或禁用时用到的一些选项

  2、unit段的常用选项:
    Description:描述信息,意义性描述
    After:定义unit的启动顺序,表示当前unit应该晚于哪些unit启动,其功能与before相反
    Requies:依赖到的其它unit,强依赖,被依赖的unit无法激活时,当前unit就无法激活
    Wants:依赖的其它unit,弱依赖,被依赖的unit无法激活时,当前unit仍然可以激活
    Conflicts:定义unit间的冲突

3、service段的常用选项:
    Type:用于定义影响ExecStart及相关参数的功能的unit进程启动类型
    simple:默认值,这个daemon主要由ExecStart接的指令串来启动,启动后常驻于内存中
    forking:由ExecStart启动的程序透过spawns延伸出其他子程序来作为此daemon的主要服务。原生父程序在启动结束后就会终止
    oneshot:与simple类似,不过这个程序在工作完毕后就结束了,不会常驻在内存中
    dbus:与simple类似,但这个daemon必须要在取得一个D-Bus的名称后,才会继续运作.因此通常也要同时设定BusNname= 才行
    notify:在启动完成后会发送一个通知消息。还需要配合NotifyAccess 来让 Systemd 接收消息
    idle:与simple类似,要执行这个daemon必须要所有的工作都顺利执行完毕后才会执行。这类的daemon通常是开机到最后才执行即可的服务
    Environmentfile:环境启动文件
    ExeStart:启动unit要运行的命令或脚本
    ExeStartPre:启动unit之前预先运行的命令或脚本
    ExeStartPost:启动unit之后要运行的命令或脚本
    ExeStop:停止unit后要运行的命令或脚本
    Restart:重启unit后要运行的命令或脚本

  4、Install段的常用选项:
    Alias:当前unit的别名
    RequiredBy:被哪些unit所依赖,强依赖
    WanteBy:被哪些unit所依赖,弱依赖
    Also:安装本服务时还要安装哪些相关服务

注意:对于新建的unit文件或修改后的unit文件,需要通知systemd重载此配置文件
  重载命令:systemctl daemon-reload


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-275252-1-1.html 上篇帖子: Linux服务器ssh登录很慢解决方法 下篇帖子: CentOS7系统启动、排错、修复、破解root口令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表