11.3 注册自定义服务(systemd)
子章节
创建 systemd 服务单元文件
对于需要将任意程序注册为系统服务的场景,可使用 systemd 的 .service 单元文件。
服务文件路径:
/etc/systemd/system/— 用户自定义服务(推荐)/usr/lib/systemd/system/— 系统包管理器安装的服务
基本模板
[Unit]
Description=My Custom Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/path/to/app
ExecStart=/usr/bin/python3 /path/to/app/main.py
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
常用指令说明
| 指令 | 说明 |
|---|---|
Description= |
服务描述 |
After= |
依赖的服务,在这些服务之后启动 |
Type= |
启动类型:simple(默认)、forking、oneshot 等 |
User= |
运行服务的用户 |
Group= |
运行服务的用户组 |
WorkingDirectory= |
工作目录 |
ExecStart= |
启动命令(必填,需使用绝对路径) |
ExecStop= |
停止命令 |
ExecReload= |
重载命令 |
Restart= |
重启策略:on-failure、always、no |
RestartSec= |
重启间隔(秒) |
Environment= |
环境变量,如 Environment="MY_VAR=value" |
StandardOutput= |
标准输出,如 journal、syslog、inherit |
StandardError= |
错误输出,同上 |
WantedBy= |
安装目标,通常为 multi-user.target |