
systemd 和 supervisor 是两种常用的进程守护工具,用来保证量化交易程序在云服务器上稳定、持续运行。它们的核心作用是:让程序在后台运行、崩溃时自动重启、服务器重启后自动启动。systemd 是 Linux 系统自带的,无需额外安装,适合守护单个或少量服务;supervisor 是第三方工具,配置相对简单直观,适合管理多个进程。本文介绍这两种工具守护量化进程的基本配置方法,帮你让策略程序具备"打不死、自动恢复"的能力。
前面反复强调,7×24 运行的核心兜底机制就是进程守护。这里再说清楚它到底解决什么问题。
你把策略程序跑起来后,会面临几个风险:
进程守护工具就是来解决这些问题的。它能做到三件关键的事:
有了这些,你的策略才能真正"打不死、自动恢复"。常用的守护工具有两个——systemd 和 supervisor,下面分别讲。
systemd 是现代 Linux 系统自带的服务管理工具,不需要额外安装,功能强大,是守护量化程序的常用选择。
用 systemd 守护你的策略,核心是创建一个 service 配置文件,告诉系统"怎么启动你的程序、崩了怎么办、要不要开机自启"。
创建一个服务配置文件(比如 /etc/systemd/system/quant.service):
[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 配置(改了配置文件后要执行)
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:
pip install supervisor
# 或用系统包管理器安装然后为你的策略写一个配置(比如在 supervisor 配置目录下创建 quant.conf):
[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:日志直接配置到文件,方便查看。配置好后,用 supervisorctl 管理进程:
# 重新加载配置
supervisorctl reread
supervisorctl update
# 查看所有被管理的进程状态
supervisorctl status
# 启动 / 停止 / 重启某个程序
supervisorctl start quant
supervisorctl stop quant
supervisorctl restart quant
# 查看日志
supervisorctl tail -f quantsupervisor 的优势在于:用统一的界面管理多个进程,状态一目了然,日志配置也方便。如果你要同时守护好几个策略程序,supervisor 管理起来会比较清爽。它自己也可以配置成随系统启动,从而实现开机自启。
两个工具都能实现进程守护,怎么选?看这张对比表:
对比 | systemd | supervisor |
|---|---|---|
是否自带 | Linux 系统自带 | 需额外安装 |
配置风格 | service 文件 | conf 文件,较直观 |
多进程管理 | 每个一个 service | 统一管理,较方便 |
适合场景 | 单个/少量服务 | 多个进程 |
开机自启 | systemctl enable | 配置 supervisor 自启 |
选择建议:
两者没有绝对优劣,按你的场景选。核心目标是一样的——让程序崩溃自愈、开机自启、后台稳定运行。
用进程守护时,几个实用注意点:
一是配置好日志。 无论用哪个工具,都要把程序日志妥善记录(systemd 用 journalctl 看,supervisor 配置 logfile)。日志是你了解程序状态、排查问题的窗口。
二是密钥安全。 在配置文件里配置环境变量(密钥)时,注意配置文件的权限,别让密钥泄露。
三是别滥用自动重启。 自动重启是好事,但如果程序因为一个根本性错误反复崩溃、反复重启(陷入死循环),反而会有问题。所以程序本身的异常处理也要做好,别指望重启解决所有问题。
四是配合监控告警。 进程守护能自动重启,但如果程序反复崩溃,你应该收到告警去排查根本原因。守护 + 告警,才完整。
进程守护,是让量化策略从"能跑"到"稳定跑"的关键一环。它解决了"程序崩溃"和"服务器重启"这两个最常见的中断风险,让你的策略具备无人值守、自动恢复的能力。
配合前面讲的稳定云服务器、异常处理、日志告警,进程守护共同构成了 7×24 运行的完整保障。在腾讯云云服务器 CVM 上,用 systemd 或 supervisor 守护好你的策略进程,就能让它稳稳地长期运转,不用你时时盯着。这是每一个要做实盘的量化交易者都该掌握的基本功。
systemd 和 supervisor 是守护量化交易进程的两大常用工具,核心作用都是让程序后台运行、崩溃自愈、开机自启。systemd 是 Linux 自带、适合单个少量服务;supervisor 需额外安装、配置直观、适合多进程管理。按你的场景选一个用好,你的策略就具备了"打不死、自动恢复"的能力,这是量化 7×24 稳定运行的关键一环。
进程守护运行在稳定的云服务器上。腾讯云近期上线了量化交易专题活动,可以了解云服务器如何为量化程序的守护与稳定运行提供支撑。
风险提示:本文仅为量化交易科普与技术分享,不构成任何投资建议。文中配置与命令仅为教学示意,实际以所用系统和工具文档为准。金融市场存在风险,请结合自身情况谨慎决策。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。