• CentOS7下systemd


    配置文件

      /usr/lib/systemd/system:每个服务最主要的启动脚本设置,类似于之前的/etc/init.d/

      /run/systemd/system:系统执行过程中所产生的服务脚本,比上面目录优先运行

      /etc/systemd/system:管理员建立的执行脚本,类似于/etc/rd.d/rcN.d/Sxx类的功能,比上面的目录优先级高

    不兼容

      systemctl命令固定不变,不可扩展

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

    管理服务

      命令: 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 reload-or-restart name.service

      重载或条件式重启服务:

        systemctl reload-or-try-restart name.service

      重载服务

        systemctl reload name.service

      禁止自动和手动启动:

        systemctl mask name.service

      取消禁止:

        systemctl unmask name.service

    服务查看

      查看某服务当前激活与否的状态

        systemctl is-active name.service             脚本中可以根据返回值判断

      查看所有已经激活的服务

        systemctl list-units  [--type | -t]  service

      查看所有服务  

        systemctl list-units  [--type|-t]  service [--all | -a]

      列出失败的服务

        systemctl --failed [--type=service|-t service]

    chkconfig命令的对应关系

      设定某服务开机自启

        chkconfig name on --> systemctl enable name.service

      设定某服务开机禁止启动

        chkconfig name off --> systemctl disable name.service 

      查看是否开机启动

        systemctl is-enabled name.service       脚本中可以根据返回值判断是否启用

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

        chkconfig --list --> systemctl list-unit-files  [--type|-t]  service

      用来列出该服务在哪些运行级别下启用和禁用  

        chkconfig name -list -->  ls /etc/systemd/system/*.wants/name.service

      其他命令

        查看服务的依赖关系

          systemctl list-dependencies | name .service

        杀掉进程

          systemctl kill unitname

    服务状态

      systemctl list-unit-files -t service -a    显示状态

      loaded                 Unit 配置文件已处理

      active(running)            一次或多次持续处理的运行

      active(exited)            成功完成一次性的配置

      active(waiting)             运行中,等待一个事件

      inactive                不运行

      enabled               开机启动

      disabled               开机不启动

      static                 开机不启动,但可被另一个启动的服务激活

      

    service unit文件格式

      /etc/systemd/system:系统管理员和用户使用/usr/lib/systemd/system:发行版打包者使用

      以 “#” 开头的行后面的内容会被认为是注释

      相关布尔值,1、yes、on、true 都是开启,0、no、off、false 都是关闭

      时间单位默认是秒,所以要用毫秒(ms)分钟(m)等须显式说明

      service unit file文件通常由三部分组成:

        [Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等

        [Service]:与特定类型相关的专用选项;此处为Service类型

        [Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项

     

        Unit段的常用选项:

          Description:描述信息

          After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反

          Requires:依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活

          Wants:依赖到的其它units,弱依赖

          Conflicts:定义units间的冲突关系

      

        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:环境配置文件

          ExecStart:指明启动unit要运行命令或脚本的绝对路径

          ExecStartPre: ExecStart前运行

          ExecStartPost: ExecStart后运行

          ExecStop:指明停止unit要运行的命令或脚本

          Restart:当设定Restart=1 时,则当次daemon服务意外终止后,会再次自动启动此服务

        Install段的常用选项:

          Alias:别名,可使用systemctl command Alias.service

          RequiredBy:被哪些units所依赖,强依赖

          WantedBy:被哪些units所依赖,弱依赖

          Also:安装本服务的时候还要安装别的相关服务

      注意:对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此配置文件,而后可以选择重启

        systemctl daemon-reload

    运行级别

      target units:

        unit配置文件:.target 

        ls /usr/lib/systemd/system/*.target

        systemctl list-unit-files --type target --all

      运行级别:

        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

      查看依赖性:

        systemctl list-dependencies graphical.target

      级别切换:init N ==> systemctl isolate name.target

        注:只有/lib/systemd/system/*.target文件中AllowIsolate=yes 才能切换(修改文件需执行systemctl daemon-reload才能生效)

      查看target:

        runlevel ; who -r

        systemctl list-units --type target

      查看默认运行级别:

        /etc/inittab ==> systemctl get-default

      修改默认级别:

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

          systemctl set-default multi-user.target

          ls –l /etc/systemd/system/default.target

      切换至紧急救援模式:

        systemctl rescue

      切换至emergency模式:

        systemctl emergency

      其他常用命令:

        传统命令init,poweroff,halt,reboot都成为systemctl的软链接

        关机:systemctl halt、systemctl poweroff

        重启:systemctl reboot

        挂起:systemctl suspend

        休眠:systemctl hibernate

        休眠并挂起:systemctl hybrid-sleep

  • 相关阅读:
    Log4J输出日志到WEB工程目录的实现方法
    MyEclipse 10 中增加svn插件
    Web 项目添加log4j
    ruby on rails 之旅 第一章 ubuntu11.10安装
    ruby on rails 之旅 第一章 ubuntu12.04安装
    centos 6.3 server 安装mysql5
    技术实践第四期|解读移动开发者日常性能监控平台应用
    电脑一族预防颈椎劳损八法
    方便的使用单击和双击更新DataGrid中的数据的例子(转载)
    不重复随机数列生成算法
  • 原文地址:https://www.cnblogs.com/tony3154/p/10094043.html
Copyright © 2020-2023  润新知