linux 的systemctl启动文件

# /usr/lib/systemd/system/xxxx.service
[Unit]
Description=My Application              # 服务描述
After=network.target                    # 确保在网络服务启动后再启动此服务
Documentation=man:systemd.service       # 可选:指定文档路径(如man手册)

[Service]
# -------------------- 基础配置 --------------------
Type=simple                             # 服务类型(simple:主进程为ExecStart指定的命令)
User=myuser                             # 运行服务的用户
Group=mygroup                           # 运行服务的用户组
WorkingDirectory=/opt/myapp             # 可选:设置服务工作目录(默认是根目录)

# -------------------- 环境变量配置 --------------------
Environment="APP_ENV=production"        # 直接设置环境变量(等效于export)
EnvironmentFile=-/etc/sysconfig/myapp   # 加载环境文件(-表示忽略加载失败)

# -------------------- 启动/停止命令 --------------------
ExecStart=/usr/bin/python3 /opt/myapp/main.py  # 服务启动命令
ExecStop=/usr/bin/python3 /opt/myapp/stop.py   # 可选:自定义停止命令(默认SIGTERM终止)
ExecReload=/usr/bin/python3 /opt/myapp/reload.py  # 可选:自定义重新加载命令

# -------------------- 重启策略 --------------------
Restart=always                          # 重启策略:always(始终重启)
RestartSec=5                            # 重启间隔(默认100ms,单位:秒、毫秒等)
StartLimitInterval=10s                  # 限制启动频率(10秒内最多启动次数,默认5次)
StartLimitBurst=3                       # 配合StartLimitInterval的最大启动次数

# -------------------- 资源限制 --------------------
LimitNOFILE=102400                      # 限制打开文件描述符数量
MemoryMax=512M                          # 限制最大内存使用量

[Install]
WantedBy=multi-user.target              # 开机自启动配置:在多用户模式下激活服务
Alias=myapp.service                     # 可选:为服务添加别名(如systemctl start myapp)

最简便写法

# /usr/lib/systemd/system/xxxx.service
[Unit]
After=network.target                    # 确保在网络服务启动后再启动此服务
Documentation=man:systemd.service       # 可选:指定文档路径(如man手册)

[Service]
# -------------------- 基础配置 --------------------
Type=simple                             # 服务类型(simple:主进程为ExecStart指定的命令)
WorkingDirectory=/opt/myapp             # 可选:设置服务工作目录(默认是根目录)

# -------------------- 环境变量配置 --------------------
Environment="APP_ENV=production"        # 直接设置环境变量(等效于export)
EnvironmentFile=-/etc/sysconfig/myapp   # 加载环境文件(-表示忽略加载失败)

# -------------------- 启动/停止命令 --------------------
ExecStart=/usr/bin/python3 /opt/myapp/main.py  # 服务启动命令
ExecStop=/usr/bin/python3 /opt/myapp/stop.py   # 可选:自定义停止命令(默认SIGTERM终止)
ExecReload=/usr/bin/python3 /opt/myapp/reload.py  # 可选:自定义重新加载命令
Restart=always                          # 重启策略:always(始终重启)

[Install]
WantedBy=multi-user.target              # 开机自启动配置:在多用户模式下激活服务
Alias=myapp.service                     # 可选:为服务添加别名(如systemctl start myapp)
posted on 2025-05-15 11:56  小二jerry  阅读(10)  评论(0)    收藏  举报