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)
本文来自博客园,作者:小二jerry,转载请注明原文链接:https://www.cnblogs.com/jassonWang/p/18877481