网站首页 > 技术文章 正文
介绍
supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
安装
centos
yum install epel-release yum install -y supervisor systemctl enable supervisord # 开机自启动 systemctl start supervisord # 启动supervisord服务 systemctl status supervisord # 查看supervisord服务状态
配置
默认配置文件的目录:
/etc/supervisord.conf #主配置文件 /etc/supervisord.d/ #单服务配置文件的目录
主配置文件需要的改动(supervisord.conf):
[include] files = supervisord.d/*.conf #默认是ini,可以修改为conf
主配置文件其它地方一般默认就好,若有特殊的需求可以问我或者自行百度。
单个服务的配置文件:
每个需要supervisor进行管理的服务最好单独配置在/etc/supervisord.d目录下,介绍如下:
[program:x]:配置文件必须包括至少一个program,x是program名称,必须写上,不能为空
- command:包含一个命令,当这个program启动时执行
- directory:执行子进程时supervisord暂时切换到该目录
- user:账户名
- startsecs:进程从STARING状态转换到RUNNING状态program所需要保持运行的时间(单位:秒)
- redirect_stderr:如果是true,则进程的stderr输出被发送回其stdout文件描述符上的supervisord
- stdout_logfifile:将进程stdout输出到指定文件
- stdout_logfifile_maxbytes:stdout_logfifile指定日志文件最大字节数,默认为50MB,可以加KB、MB或GB等单位
- stdout_logfifile_backups:要保存的stdout_logfifile备份的数量
特别说明:supervisor不能够管理后台运行的服务,所以有些服务如果需要supervisor进行管理的话,特殊配置一下。Tomcat的常用启动命令在linux中就会默认后台运行,所以用它举例(参照本地机器):
1. 在/etc/supervisord.d/目录下新建cat.conf文件。
[program:tomcat] #tomcat中catalina.sh所在位置 加上 run command=/root/task/apache-tomcat-7.0.68/bin/catalina.sh run #jdk安装目录 environment=JAVA_HOME="/usr/lib/jvm/java-8-oracle",JAVA_BIN="/usr/lib/jvm/java-8- oracle/bin" #执行时切换到tomcat所在目录 directory=/root/task/apache-tomcat-7.0.68 #执行的用户 user=root autostart = true autorestart=true redirect_stderr=true
2. systemctl status supervisord重启服务。
3. 通过supervisord启动tomcat.
supervisorctl start tomcat
介绍一下supervisorctl命令
supervisorctl 是 supervisord的命令行客户端工具
- supervisorctl status:查看所有进程的状态
- supervisorctl stop tomcat
- supervisorctl start tomcat
- supervisorctl restart tomcat
- supervisorctl update
- supervisorctl reload
注意事项:
- 前面说过,后台进程supervisor管不到,类似ES -d,Tomcat (startup)之类的启动命令默认是后台命令,需要特殊处理,不然的话服务应该会不断的重启。
- supervisord 服务启动一个就好,不要启动多个。
- 通过supervisord管理的服务需要通过supervisro 启动。
- 重新部署项目的时候需要停掉supervisord服务,不然服务会一直重启(默认三次)。
猜你喜欢
- 2025-08-06 世界排行第一的编程语言:java迎来25岁生日
- 2025-08-06 守护云中数据 戴尔亮出"快"备份组合拳
- 2025-08-06 和英雄一起守护领地 《Wonder Oracle》封测开启
- 2024-11-02 Linux环境中Oracle数据库ORA-00600错误的处理过程
- 2024-11-02 CTO来教你:技术人员突然离职,如何接手他的项目?
- 2024-11-02 Oracle RAC启动时如何访问ASM spfile
- 2024-11-02 oracle监听程序无法启动TNS-12560,TNS-00530
- 2024-11-02 linux下oracle随操作系统启动而启动
- 2024-11-02 Oracle启动数据库实例 oracle12c启动数据库
- 2024-11-02 配置Oracle数据库的开机自启动 oracle 自启动配置
你 发表评论:
欢迎- 最近发表
-
- Three.js vs Unity:工业可视化为何选择Web方案?
- 一款全新Redis UI可视化管理工具,支持WebUI和桌面——P3X Redis UI
- 时间线可视化实战:三款AI工具实测,手把手教你制作人生轨迹图
- 【推荐】一款可视化在线 Web 定时任务管理平台,支持秒级任务设置
- 重磅更新!FastDatasets 推出可视化 Web 界面
- 模具设计之UG钣金实例教程(3)_ug钣金基础教程
- 前端基于 RBAC 模型的权限管理实现
- 别再把JWT存在localStorage里了!2025年前端鉴权新思路
- 模具设计之曲面造型中不圆润的曲面如何处理技巧
- 9个专业级别的CSS技巧区分了解和精通的鸿沟
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)