Linux学习笔记:systemd配置文件
本文更新于2026-01-14,使用systemd 252,操作系统为Debian 12.6 (bookworm)。
如配置文件路径为/lib/systemd/system/nginxd.service,则服务名为nginxd。文件所有者为root,权限通常为0644。
文件内容如下:
- Unit
- After:在此依赖列表之后启动。以空格分隔。
- Before:在此依赖列表之前启动。以空格分隔。
- Description:描述文本。
- Documentation:文档地址。
- Wants:弱依赖列表,即使其启动失败也不会对本单元有影响。以空格分隔。
- Service
- Environment:环境变量列表。
- ExecReload:重载指令。必需使用绝对路径。
- ExecStart:启动指令。必需使用绝对路径。
- ExecStartPost:启动后处理指令。必需使用绝对路径。
- ExecStartPre:启动预处理指令。必需使用绝对路径。
- ExecStop:停止指令。必需使用绝对路径。
- Group:进程运行的系统用户组。
- KillMode:杀死进程的模式。control-group(默认)为杀死所有进程,包括子进程;process为只杀死主进程;mixed为主进程将收到SIGTERM信号,子进程收到SIGKILL信号;none为不杀死进程,只执行stop指令。
- PrivateTmp:是否分配独立的临时空间。
- Restart:重启策略。no(默认)为不重启;always为总是重启;on-success为只在成功退出(即返回码为0)时重启;on-failure为只在失败退出(即返回码非0)时重启。
- RestartSec:重启时间间隔。默认为100ms。
- RuntimeDirectory:进程运行时在/run下创建的临时目录。
- TimeoutSec:停止的超时时间,超过则强制停止。
- Type:启动类型。为forking时从父进程创建子进程,然后父进程退出;为simple(默认)时启动指令即为主体程序。
- User:进程运行的系统用户。
- WorkingDirectory:进程工作目录。
- Install
- WantedBy:被外部依赖的列表。以空格分隔。
示例
Nginx
[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
Redis
[Unit]
Description=Redis Server
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
Restart=on-failure
WorkingDirectory=/var/lib/redis
[Install]
WantedBy=multi-user.target

浙公网安备 33010602011771号