Systemd 笔记

Unit

  • After: 本服务在这些服务之后启动
  • Before: 本服务在这些服务之前启动
  • Wants: 弱依赖,这些服务是否运行不影响本服务启动
  • Requires: 强依赖,本服务的运行依赖这些服务

Service

  • EnvironmentFile: 环境参数文件,内部 key=value 格式,在当前文件中使用 $key 获取 value
  • ExecStart: 启动时执行的命令
  • ExecReload: 重启服务时执行的命令
  • ExecStop: 停止服务时执行的命令
  • ExecStartPre: 启动服务之前执行的命令
  • ExecStartPost: 启动服务之后执行的命令
  • ExecStopPost: 停止服务之后执行的命令
  • "-" 配置项前的减号"-"表示"抑制错误",发生错误时不影响后续命令执行
  • Type
    • simple: 默认,ExecStart 启动主进程
    • forking: ExecStart 启动时 fork 子进程,之后该父进程退出,子进程成为主进程
    • onshot: 类似 Simple,只执行一次
    • dbus: 类似 Simple,等待 D-Bus 信号启动
    • notify: 类似 Simple,启动完成后发出通知信号
    • idle: 类似 Simple,等到其他任务执行完成后才会启动该服务
  • RemainAfterExit=yes: 进程退出后服务保持运行
  • KillMode
    • control-group: 默认,杀掉所有子进程
    • process: 只杀主进程
    • mixed: 主进程收到 SIGTERM 信号,子进程收到 SIGKILL 信号
    • none: 不杀进程,只执行服务的 stop 命令
  • Restart
    • no: 默认,退出后不重启
    • on-success: 正常退出时重启
    • on-failure: 非正常退出、被信号终止或超时重启
    • on-abnormal: 被信号终止和超时重启
    • on-abort: 收到没有捕捉到的信号终止时重启
    • on-watchdog: 超时退出,才会重启
    • always: 不管是什么退出原因,总是重启
  • RestartSec: 系统重启前等待的秒数

Install

  • WantedBy=multi-user.target

重新加载配置文件

systemctl daemon-reload

猜你喜欢

转载自my.oschina.net/colben/blog/1823907