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(默认)、forkingoneshot
User= 运行服务的用户
Group= 运行服务的用户组
WorkingDirectory= 工作目录
ExecStart= 启动命令(必填,需使用绝对路径)
ExecStop= 停止命令
ExecReload= 重载命令
Restart= 重启策略:on-failurealwaysno
RestartSec= 重启间隔(秒)
Environment= 环境变量,如 Environment="MY_VAR=value"
StandardOutput= 标准输出,如 journalsysloginherit
StandardError= 错误输出,同上
WantedBy= 安装目标,通常为 multi-user.target