zoukankan      html  css  js  c++  java
  • 【RHEL7/CentOS7服务控制之systemctl命令】

    Systemd对于Linux来说,就是一个init程序,可以作为sysVinitUpstat的替代。

    RHEL7监控和控制Systemd的主要命令是systemctl,该命令可查看系统状态管理系统及服务

    RHEL7的服务systemctl脚本存放在:/usr/lib/systemd,有系统(system)用户(user)之分。
    .
    像一些需要开机不登陆就得运行的程序,就存在系统服务里,即:/usr/lib/systemd/system目录下。而关于用户的存放在/usr/lib/systemd/user目录下。
    .
    其中每一个服务以.service结尾,一般分为3部分:[Unit][Service][Install]
    .
    如下图(sshd服务):
    在这里插入图片描述
    [Unit]
    这部分是对这个服务的说明,主要内容包括Description和After。
    Description用于描述服务;After用于描述服务类型。
    .
    [Service]
    这部分是服务的关键,是服务的一些具体运行参数的设置。

    1. Type=forking 表示此服务是后台运行的形式。
    2. PIDFile 指定存放PID的文件路径。
    3. ExecStart 为服务的具体运行命令。
    4. ExecReload 为重载命令。
    5. ExecStop 为停止命令。

    .
    注意:[Service]部分的启动、重启、停止 命令全部要求使用绝对路径!
    .
    [Install]
    这部分是服务安装的相关设置,可设置为多用户的。
    需要注意的是,如果服务没有Install部分,一般意味着应该通过其它服务自动调用它们。
    使用systemd时,可通过正确编写单元配置文件来解决其依赖关系。
    典型的情况是,服务A要求服务B在A启动之前运行。在此情况下,向服务A配置文件中的[Unit]段添加Requires=B和After=B即可.


    对于玩转RHEL6的小伙伴来说,servicechkconfig这两个命令肯定不陌生。

    RHEL7系统中的systemctl是管制服务的主要工具,它整合了service与chkconfig功能于一体。

    systemd提供更优秀的框架以表示系统服务间的依赖关系。
    systemd实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果。
    systemd的目的是尽可能启动更少的进程,尽可能将更多进程并行启动。

    systemctl命令的基本格式:systemctl 动作 服务名.service

    可使用 systemctl daemon-reload 重新载入systemd,扫描新的或有变动的单元。

    系统状态相关

    systemctl reboot 重启系统
    .
    systemctl poweroff 退出系统并停止电源
    .
    systemctlsystemctl list-units 输出激活单元
    .
    systemctl list-units --type=service 列出active状态的服务
    .
    systemctl list-unit-files 列出所有已安装的服务
    .
    systemctl --failed 显示启动失败的服务
    .
    systemd-cgls 以树形列出正在运行的进程

    服务控制相关

    systemctl start 服务名.service 立即启动服务
    .
    systemctl stop 服务名.service 立即停止服务
    .
    systemctl restart 服务名.service 重启服务
    .
    systemctl reload 服务名.service 重新载入服务
    .
    systemctl status 服务名.service 输出服务运行状态
    .
    systemctl is-enabled 服务名.service 检查服务是否为开机自启
    .
    systemctl enable 服务名.service 启用服务开机自启
    .
    systemctl disable 服务名.service 禁用服务开机自启
    .
    systemctl is-active 服务名.service 检查服务是否正在运行
    .
    systemctl mask 服务名.service 禁用服务
    .
    systemctl unmask 服务名.service 激活服务

    关于单元扩展名

    所有可用的单元文件存放在/usr/lib/systemd/system//etc/systemd/system目录(后者优先级更高)。
    .
    一个单元可以是系统服务(.service)、挂载点(.mount)、sockets(.sockets)。
    .
    使用systemctl控制单元时,通常需要使用单元文件的全名,包括扩展名(例如sshd.service)。
    .
    但是呢,有些单元文件可以在systemctl中使用简写方式。如果无扩展名,systemctl默认把扩展名当做.service。例如 sshd 和 sshd.service 是等价的。
    .
    挂载点会自动转化为相应的.mount单元。例如/home等价于home.mount。
    设备会自动转化为相应的.device单元,所以/dev/sda2等价于dev-sda2.device。



    做你没做过的事情,叫做成长。

    做你不愿意做的事情,叫做改变。

    做你不敢做的事情,叫做突破。

    兄dei,加油!

    不要每天看着励志的句子,过着颓废的生活。

    ——抖音@张培猪

  • 相关阅读:
    动漫评书
    Mycat高可用解决方案二(主从复制)
    Mycat高可用解决方案一(mysql安装)
    基于开源博客系统(mblog)搭建网站
    七、Docker启动tocmat 8
    Kotlin开发springboot项目(三)
    Kotlin开发springboot项目(二)
    Kotlin开发springboot项目(一)
    mybatis总结
    VUE学习总结
  • 原文地址:https://www.cnblogs.com/zyk01/p/10176512.html
Copyright © 2011-2022 走看看