首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用 systemd / supervisor 守护量化交易进程

用 systemd / supervisor 守护量化交易进程

原创
作者头像
gavin1024
发布于 2026-09-21 10:48:16
发布于 2026-09-21 10:48:16
1520
举报

systemd 和 supervisor 是两种常用的进程守护工具,用来保证量化交易程序在云服务器上稳定、持续运行。它们的核心作用是:让程序在后台运行、崩溃时自动重启、服务器重启后自动启动。systemd 是 Linux 系统自带的,无需额外安装,适合守护单个或少量服务;supervisor 是第三方工具,配置相对简单直观,适合管理多个进程。本文介绍这两种工具守护量化进程的基本配置方法,帮你让策略程序具备"打不死、自动恢复"的能力。

一、为什么需要进程守护

前面反复强调,7×24 运行的核心兜底机制就是进程守护。这里再说清楚它到底解决什么问题。

你把策略程序跑起来后,会面临几个风险:

  • 用 SSH 手动运行,关闭连接程序就停;
  • 用简单的 nohup 后台运行,程序崩溃了不会自动重启;
  • 服务器重启后,程序不会自动恢复。

进程守护工具就是来解决这些问题的。它能做到三件关键的事:

  1. 后台运行:程序在后台稳定跑,不依赖你的 SSH 连接;
  2. 崩溃自愈:程序意外退出时,自动重新启动;
  3. 开机自启:服务器重启后,程序自动恢复运行。

有了这些,你的策略才能真正"打不死、自动恢复"。常用的守护工具有两个——systemd 和 supervisor,下面分别讲。

二、systemd:Linux 系统自带

systemd 是现代 Linux 系统自带的服务管理工具,不需要额外安装,功能强大,是守护量化程序的常用选择。

用 systemd 守护你的策略,核心是创建一个 service 配置文件,告诉系统"怎么启动你的程序、崩了怎么办、要不要开机自启"。

创建一个服务配置文件(比如 /etc/systemd/system/quant.service):

代码语言:ini
复制
[Unit]
Description=Quant Trading Strategy
After=network.target

[Service]
Type=simple
# 工作目录
WorkingDirectory=/root/my_strategy
# 启动命令(用虚拟环境里的 python 运行你的策略)
ExecStart=/root/miniconda3/envs/quant/bin/python main.py
# 关键:崩溃后自动重启
Restart=always
RestartSec=5
# 环境变量(可在此配置密钥等,或用 EnvironmentFile)
Environment=TRADE_API_KEY=你的密钥

[Install]
WantedBy=multi-user.target

关键配置说明:

  • ExecStart:你的程序启动命令(注意用虚拟环境里的 Python);
  • Restart=always:这是崩溃自愈的关键——程序退出就自动重启;
  • WantedBy=multi-user.target:配合下面的 enable,实现开机自启。

三、systemd:启动与管理命令

配置文件写好后,用以下命令管理你的服务:

代码语言:bash
复制
# 重新加载 systemd 配置(改了配置文件后要执行)
systemctl daemon-reload

# 启动服务
systemctl start quant

# 设置开机自启(关键:服务器重启后自动运行)
systemctl enable quant

# 查看服务运行状态
systemctl status quant

# 查看日志
journalctl -u quant -f

# 停止 / 重启服务
systemctl stop quant
systemctl restart quant

这几条命令就是日常管理服务的核心:start 启动、enable 设置开机自启、status 看状态、journalctl 看日志。配好并 enable 之后,你的策略就具备了崩溃自愈 + 开机自启的能力,实现了可靠的后台运行。systemd 适合守护单个或少量策略程序,是很多人的首选。

四、supervisor:配置直观,适合多进程

supervisor 是一个第三方的进程管理工具,需要额外安装,但它的配置相对直观,尤其适合同时管理多个进程(比如你要跑多个策略)的场景。

先安装 supervisor:

代码语言:bash
复制
pip install supervisor
# 或用系统包管理器安装

然后为你的策略写一个配置(比如在 supervisor 配置目录下创建 quant.conf):

代码语言:ini
复制
[program:quant]
; 启动命令
command=/root/miniconda3/envs/quant/bin/python main.py
; 工作目录
directory=/root/my_strategy
; 关键:自动重启
autostart=true
autorestart=true
; 日志文件
stdout_logfile=/root/my_strategy/logs/out.log
stderr_logfile=/root/my_strategy/logs/err.log
; 环境变量
environment=TRADE_API_KEY="你的密钥"

关键配置:

  • command:启动命令;
  • autostart=true:supervisor 启动时自动启动该程序;
  • autorestart=true:程序崩溃时自动重启(自愈的关键);
  • stdout_logfile:日志直接配置到文件,方便查看。

五、supervisor:管理命令

配置好后,用 supervisorctl 管理进程:

代码语言:bash
复制
# 重新加载配置
supervisorctl reread
supervisorctl update

# 查看所有被管理的进程状态
supervisorctl status

# 启动 / 停止 / 重启某个程序
supervisorctl start quant
supervisorctl stop quant
supervisorctl restart quant

# 查看日志
supervisorctl tail -f quant

supervisor 的优势在于:用统一的界面管理多个进程,状态一目了然,日志配置也方便。如果你要同时守护好几个策略程序,supervisor 管理起来会比较清爽。它自己也可以配置成随系统启动,从而实现开机自启。

六、systemd vs supervisor 怎么选

两个工具都能实现进程守护,怎么选?看这张对比表:

对比

systemd

supervisor

是否自带

Linux 系统自带

需额外安装

配置风格

service 文件

conf 文件,较直观

多进程管理

每个一个 service

统一管理,较方便

适合场景

单个/少量服务

多个进程

开机自启

systemctl enable

配置 supervisor 自启

选择建议:

  • 如果你只跑一两个策略,用系统自带的 systemd 就好,不用额外装东西;
  • 如果你要跑多个策略、想统一管理,supervisor 的多进程管理更方便。

两者没有绝对优劣,按你的场景选。核心目标是一样的——让程序崩溃自愈、开机自启、后台稳定运行。

七、使用进程守护的注意事项

用进程守护时,几个实用注意点:

一是配置好日志。 无论用哪个工具,都要把程序日志妥善记录(systemd 用 journalctl 看,supervisor 配置 logfile)。日志是你了解程序状态、排查问题的窗口。

二是密钥安全。 在配置文件里配置环境变量(密钥)时,注意配置文件的权限,别让密钥泄露。

三是别滥用自动重启。 自动重启是好事,但如果程序因为一个根本性错误反复崩溃、反复重启(陷入死循环),反而会有问题。所以程序本身的异常处理也要做好,别指望重启解决所有问题。

四是配合监控告警。 进程守护能自动重启,但如果程序反复崩溃,你应该收到告警去排查根本原因。守护 + 告警,才完整。

八、进程守护是稳定运行的关键一环

进程守护,是让量化策略从"能跑"到"稳定跑"的关键一环。它解决了"程序崩溃"和"服务器重启"这两个最常见的中断风险,让你的策略具备无人值守、自动恢复的能力。

配合前面讲的稳定云服务器、异常处理、日志告警,进程守护共同构成了 7×24 运行的完整保障。在腾讯云云服务器 CVM 上,用 systemd 或 supervisor 守护好你的策略进程,就能让它稳稳地长期运转,不用你时时盯着。这是每一个要做实盘的量化交易者都该掌握的基本功。

结尾

systemd 和 supervisor 是守护量化交易进程的两大常用工具,核心作用都是让程序后台运行、崩溃自愈、开机自启。systemd 是 Linux 自带、适合单个少量服务;supervisor 需额外安装、配置直观、适合多进程管理。按你的场景选一个用好,你的策略就具备了"打不死、自动恢复"的能力,这是量化 7×24 稳定运行的关键一环。

进程守护运行在稳定的云服务器上。腾讯云近期上线了量化交易专题活动,可以了解云服务器如何为量化程序的守护与稳定运行提供支撑。

风险提示:本文仅为量化交易科普与技术分享,不构成任何投资建议。文中配置与命令仅为教学示意,实际以所用系统和工具文档为准。金融市场存在风险,请结合自身情况谨慎决策。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、为什么需要进程守护
  • 二、systemd:Linux 系统自带
  • 三、systemd:启动与管理命令
  • 四、supervisor:配置直观,适合多进程
  • 五、supervisor:管理命令
  • 六、systemd vs supervisor 怎么选
  • 七、使用进程守护的注意事项
  • 八、进程守护是稳定运行的关键一环
  • 结尾
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档