当前位置: 首页 > news >正文

Supervisor 使用教程:进程守护的最佳实践指南

6609c93d70cf3bc79f3dc9dba757ada1cd11728bfcf7.jpg


Supervisor 教程, Supervisor 配置, Linux 进程守护, 后台任务管理, 运维工具手册


一、Supervisor 是什么?

Supervisor 是一款用于管理和监控进程的工具,适用于在 Linux 服务器上保持后台任务持续运行,常用于:

  • Laravel 队列监听器

  • Python 脚本守护

  • Node.js 服务托管

  • 后台计划任务(如 crontab 替代方案)

它的核心价值在于 自动重启进程集中日志 和 统一配置管理


二、安装 Supervisor

Ubuntu / Debian:
sudo apt update
sudo apt install supervisor -y
CentOS / RHEL:
sudo yum install epel-release -y
sudo yum install supervisor -y
启动并设置开机自启:
sudo systemctl enable supervisor
sudo systemctl start supervisor

三、配置进程管理任务

Supervisor 的配置文件目录在 /etc/supervisor/conf.d/。我们以 Laravel 队列监听器为例:

新建配置文件:
sudo nano /etc/supervisor/conf.d/laravel-worker.conf
配置内容如下:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/worker.log

保存后,重新加载配置并启动:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*

四、常用操作命令

操作命令
查看所有任务状态sudo supervisorctl status
启动进程sudo supervisorctl start
停止进程sudo supervisorctl stop
重新启动进程sudo supervisorctl restart


五、错误排查与日志查看

Supervisor 自动记录日志,若进程未启动成功,可通过如下方式查看:

cat /var/www/html/storage/logs/worker.log

也可以查看 Supervisor 本身的日志:

cat /var/log/supervisor/supervisord.log

六、总结

Supervisor 是现代运维中不可或缺的进程管理工具,特别适合部署 Laravel、Node.js、Python 等需要长期运行的任务。通过合理配置与日志监控,你可以大大提高服务的稳定性和可维护性。

本文来自:码农资讯网,专注 DevOps、PHP、数据库、系统运维干货。

http://www.lryc.cn/news/588610.html

相关文章:

  • 【Git】详解git commit --amend用法以及使用遇到的问题
  • eVTOL分布式电推进(DEP)适航审定探究
  • Python 操作Excel工作表:添加、删除、移动、隐藏
  • redis集群的部署
  • 线性代数小述(三)
  • Pitaya 是一个简单、快速、轻量级的游戏服务器框架,它为分布式多人游戏和服务器端应用程序提供了一个基本的开发框架
  • 【橘子分布式】Thrift RPC(编程篇)
  • Vim多列操作指南
  • 028_分布式部署架构
  • 淘宝扭蛋机小程序开发:重构电商娱乐化体验的新范式
  • GaussDB 数据库架构师修炼(四) 备份容量估算
  • 【轨物洞见】光伏运维的“无人区”突围战,数据智能是唯一航标
  • Python Docker SDK库详解:从入门到实战
  • docker 方式gost代理搭建以及代理链实施
  • Linux VFS 抽象层全解析:统一接口的力量
  • JAVA学习笔记 使用notepad++开发JAVA-003
  • 微信小程序进度条cavans
  • 虚拟主机CPU占用100导致打不开的一次处理
  • [数据结构]#3 循环链表/双向链表
  • 微信小程序未登录状态下的导航拦截有哪些方法可以实现
  • 暑假Python基础整理 --异常处理及程序调试
  • python原生处理properties文件
  • 电动汽车制动系统及其工作原理
  • slam中的eskf观测矩阵推导
  • LangChain智能体开发实战:从零构建企业级AI助手
  • C++ Boost Aiso TCP 网络聊天(服务端客户端一体化)
  • CMake基础:覆盖项目开发的五大配套工具
  • 【机器学习深度学习】大模型推理速度与私有化部署的价值分析
  • ELK部署与使用详解
  • Docker部署语音转文字(STT)服务并接入Home Assistant