• 【Linux】systemctl


    https://blog.csdn.net/lonnng2004/article/details/88964763

    Systemd 统一管理所有 Unit 的启动日志。
    journalctl 命令查看所有日志(内核日志和应用日志)
    日志的配置文件是 /etc/systemd/journald.conf。

    /usr/lib/systemd/system/sshd.service

    
    [Unit]
    Description=OpenSSH server daemon
    Documentation=man:sshd(8) man:sshd_config(5)
    After=network.target sshd-keygen.service
    Wants=sshd-keygen.service
     
    [Service]
    EnvironmentFile=/etc/sysconfig/sshd
    ExecStart=/usr/sbin/sshd -D $OPTIONS
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    RestartSec=42s
     
    [Install]
    WantedBy=multi-user.target
    

    service 文件一般由 [Unit]/[Service]/[Install] 三部分组成

    官方分为:[Unit]/[unit type]/[Install],unit type 如果一个单元具有特殊类型定义则将它们定义在类型命名之后,比如 Service 定义为 [Service]

    [Unit]

    对这个服务的说明、内容、文档介绍以及对一些依赖服务定义

    Description 服务描述,作为 systemctl status 命令输出的一个介绍
    Documentation 一个 url 定义服务的具体介绍网址
    After 在什么服务启动之后
    Before 在什么服务启动之前启动
    Requires 依赖其他的单元服务, 需要与列出的服务一起激活,若任何服务无法启动,则该单元不会被激活
    Wants 比Requires依赖性弱,弱其他服务没有启动成功,该服务也不受影响,只是表示一种推荐
    
    [Service]

    服务的主体定义,主要定义服务的一些运行参数及操作动作

    
    User 设置服务运行的用户
    Group 设置服务运行的用户组
    PIDFile 为存放 PID 的文件路径, 对于 type 设置为 forking 建议使用该项。systemd will read
    the PID of the main process of the daemon after start-up of the service. systemd will not write to the file configured here,
    although it will remove the file after the service has shut down if it still exists.
    ExecStart 服务的具体运行命令,ExecStartPre 和 ExecStartPost 指定在 ExecStart 前后执行的自定义命令。若使用 Type = OnHead 可以指定多个自定义命令,将依次执行这些命令。
    ExecReload 为重启命令,重新加载的动作,重新加载时执行的命令或者脚本
    ExecStop 为停止命令,停止时要执行的命令或脚本
    ExecStartPre 启动服务之前执行的命令
    ExecStartPost 启动服务之后执行的命令
    ExecStopPost 停止服务之后执行的命令
    Restart 定义何种情况Systemd会自动重启当前服务,值包括:always(总是重启)、no 、on-success、on-failure、on-abnormal、on-abort、on-watchdog。对于守护进程,推荐设为 on-failure。对于那些允许发生错误退出的服务,可以设为on-abnormal
    RestartSec 设置在重启服务(Restart=)前暂停多长时间。默认值是100毫秒(100ms)。如果未指定时间单位,那么将视为以秒为单位。例如设为"20"等价于设为"20s"
    StartLimitInterval 无限次重启,默认是10秒内如果重启超过5次则不再重启,设置为0表示不限次数重启
    TimeoutStartSec 等待启动的时间。如果守护进程服务没有在配置的时间内发送启动完成的信号,则该服务将被认为失败,服务将退出。以秒为单位,“0”来禁用。默认使用 DefaultTimeoutStartSec,若使用 Type=oneshot,则该模式默认情况下超时是禁用的
    TimeoutStopSec 等待关闭的超时时间
    TimeoutSec 快速配置 TimeoutStartSec 和 TimeoutStopSec 时间
    KillMode control-group(默认值),即当前控制组里面的所有子进程,都会被杀掉;process 只杀主进程;mixed 主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号;none 没有进程会被杀掉,只是执行服务的 stop 命令
    Environmen 指定环境变量
    PrivateTmp 表示给服务分配独立的临时空间
    KillSignal 服务的所有进程都将会根据 KillSignal= 的设置被立即全部杀死。 与 ExecReload= 一样
    

    注意:[Service] 部分的启动、重启、停止命令必须使用绝对路径,使用相对路径则会报错

    Type
    1. simple 默认参数,进程作为主进程
    2. forking 是后台运行的形式,主进程退出,os接管子进程
    3. oneshot 类似 simple,在开始后续单元之前,过程退出
    4. DBUS 类似 simple,但随后的单元只在主进程获得D总线名称之后才启动
    5. notify 类似 simple,但是随后的单元仅在通过 sd_notify() 函数发送通知消息之后才启动
    6. idle 类似 simple,服务二进制文件的实际执行被延迟到所有作业完成为止,不与其他服务的输出相混合,如状态输出与服务的 shell 输出混合

    备注:以上的类似 simple 指的是类似 simple 将启动进程作为主进程进行运行

    [Install]

    服务安装的相关设置,一般可设置为多用户

    RequiredBy 依赖该服务的服务列表
    WantedBy 表示该服务所在的 Target,multi-user.target 可以设置为多用户模式具体参考手册systemd.unit(5)
    
    服务状态
    loaded 系统服务已经初始化完成,加载过配置
    actvie(running) 正常运行
    actvie(exited) 正常结束的服务,
    active(waitting) 正在执行当中, 等待其他的事件才继续处理
    inactive 服务关闭
    enabled 服务开机启动
    disabled 服务开机不自启
    static 服务开机启动项不可被管理
    falied 系统配置错误
    
  • 相关阅读:
    微信公众号--JS-SDK
    微信公众号--网页授权
    微信公众号--资源请求
    微信公众号--相关资料
    微信公众号--消息回复
    一.小程序 --申请
    2017年总结
    SSM框架中常用的配置文件
    UML的9种图例解析
    23种设计模式汇总整理
  • 原文地址:https://www.cnblogs.com/jiangxu67/p/16183910.html
Copyright © 2020-2023  润新知