尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

使用 systemd 管理 Python 项目(示例:confhub-sync)

使用 systemd 管理 Python 项目(示例:confhub-sync)
📅 发布时间:2026/6/20 2:10:47

 

使用 systemd 管理 Python 项目(示例:confhub-sync)

 

 

在 CentOS/AlmaLinux 9 上,可以用 systemd 代替 supervisor 来管理 Python 项目。下面是我配置的 myapp-confhub-sync.service 示例,路径按实际环境调整。

 


 

 

配置文件:

/etc/systemd/system/myapp-confhub-sync.service

 

[Unit]
Description=MyApp - confhub-sync (Python, conda py312)
After=network-online.target
Wants=network-online.target# ——启动风暴抑制(在 [Unit] 段生效)——
# StartLimitIntervalSec:统计窗口(这里 30 秒内)
# StartLimitBurst:窗口内允许的“自动重启/失败启动”次数上限
# 超过则进入抑制,直到窗口过期或手动 reset-failed
StartLimitIntervalSec=30s
StartLimitBurst=5[Service]
# ——运行目录 & 环境——
WorkingDirectory=/opt/genesis/confhub-sync
EnvironmentFile=-/opt/genesis/confhub-sync/.env
Environment=PYTHONUNBUFFERED=1
# 将 env 的 bin 置于 PATH 前,便于子进程用到该环境内的可执行文件
Environment=PATH=/opt/anaconda3/envs/py312/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin# ——启动命令——
ExecStart=/opt/anaconda3/envs/py312/bin/python /opt/genesis/confhub-sync/__main__.py# ——进程管理策略——
# Restart 的可选值:
#   no          → 不自动重启(默认)
#   always      → 无论正常/异常退出都重启
#   on-success  → 仅正常退出 (code=0) 时重启
#   on-failure  → (推荐)异常退出、信号终止、超时等失败场景重启
#   on-abnormal → 仅异常信号导致退出时重启
#   on-abort    → 仅“非正常信号”导致退出时重启(不含 TERM/INT)
#   on-watchdog → 仅看门狗超时触发(需 WatchdogSec 配合)
Restart=no# RestartSec:发生重启时,等待多久再拉起(对 Restart=no 无效)
RestartSec=2s# TimeoutStopSec:执行 `systemctl stop` 时,先发 SIGTERM;
# 若超时未退出,则发 SIGKILL 强制杀掉。
TimeoutStopSec=20s# ——安全/隔离选项——
NoNewPrivileges=true    # 禁止进程获取更高权限
PrivateTmp=true         # 给进程单独的 /tmp
ProtectSystem=full      # 根目录大部分只读
ProtectHome=false       # 如需访问 /root/.ssh,设为 false,否则建议设为 true
Environment=HOME=/root
ReadWritePaths=/opt/genesis/confhub-sync   # 允许写入的白名单目录# ——日志——
# 默认 stdout/stderr 进入 journald(可配置持久化+限额)
# 如需对日志节流可启用:
# LogRateLimitIntervalSec=30s
# LogRateLimitBurst=200[Install]
WantedBy=multi-user.target

 


 

 

常用操作

 

# 保存文件后刷新 systemd
systemctl daemon-reload# 启动服务
systemctl start myapp-confhub-sync.service# 设置开机自启
systemctl enable myapp-confhub-sync.service# 查看服务状态
systemctl status myapp-confhub-sync.service --no-pager# 查看日志(精确到毫秒,实时跟随)
journalctl -u myapp-confhub-sync.service -o short-precise -f

 


 

 

小结

 

 

  • 这种方式比 supervisor 更轻量,直接依托 systemd。

  • 日志统一进入 journald,可以设置持久化和限额。

  • Restart 策略灵活,能实现和 supervisor 类似的守护功能。

  • 结合 SELinux 正确标签(restorecon -RFv /opt/...),可以在 Enforcing 模式下稳定运行。

 

 


 

要不要我再帮你整理一份 “最小精简版”配置(只保留必要选项,适合博客里快速复制粘贴的)?

相关新闻

  • 9.15模拟赛总结
  • ECT-OS-JiuHuaShan框架,将会是全球推理之源,无需数据训练,只需数据检索和校验。彻底颠覆概率云ai
  • 如何正确使用mysql

最新新闻

  • 2026年天津GEO优化服务商推荐指南 - GEO优化
  • 2026年近期陕西消防:专业消防技术服务商选择与推荐 - 品牌鉴赏官2026
  • 小米手表表盘设计入门指南:Mi-Create让你轻松打造个性表盘
  • 3分钟免费汉化Axure RP:新手终极中文界面配置指南
  • 如何在Mac上5分钟制作Windows启动盘:WinDiskWriter终极指南
  • 深圳2026年6月GEO优化公司Top5:全面对比实力与落地效果 - GEO优化

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号