Linux学习笔记:systemd配置文件

本文更新于2024-08-15,使用systemd 252,操作系统为Debian 12.6 (bookworm)。

以为Nginx编写配置文件为例,配置文件路径为/lib/systemd/system/nginxd.service(亦即服务名为nginxd),所有者为root,权限通常为0644。文件内容如下:

[Unit]
Description=Nginx
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
  • Unit
    • After:在此依赖列表之后启动。以空格分隔。
    • Before:在此依赖列表之前启动。以空格分隔。
    • Description:描述文本。
    • Documentation:文档地址。
    • Wants:弱依赖列表,即使其启动失败也不会对本单元有影响。以空格分隔。
  • Service
    • Environment:环境变量列表。
    • ExecReload:重载指令。必需使用绝对路径。
    • ExecStart:启动指令。必需使用绝对路径。
    • ExecStartPost:启动后处理指令。必需使用绝对路径。
    • ExecStartPre:启动预处理指令。必需使用绝对路径。
    • ExecStop:停止指令。必需使用绝对路径。
    • KillMode:杀死进程的模式。control-group(默认)为杀死所有进程,包括子进程;process为只杀死主进程;mixed为主进程将收到SIGTERM信号,子进程收到SIGKILL信号;none为不杀死进程,只执行stop指令。
    • PrivateTmp:是否分配独立的临时空间。
    • Restart:重启策略。no(默认)为不重启;always为总是重启;on-success为只在成功退出(即返回码为0)时重启;on-failure为只在失败退出(即返回码非0)时重启。
    • RestartSec:重启时间间隔。默认为100ms。
    • TimeoutSec:停止的超时时间,超过则强制停止。
    • Type:启动类型。为forking时从父进程创建子进程,然后父进程退出;为simple(默认)时启动指令即为主体程序。
  • Install
    • WantedBy:被外部依赖的列表。以空格分隔。
posted @ 2024-08-17 15:41  garvenc  阅读(11)  评论(0编辑  收藏  举报