网站首页 > 技术文章 正文
介绍
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 自启动配置
你 发表评论:
欢迎- 653℃几个Oracle空值处理函数 oracle处理null值的函数
- 645℃Oracle分析函数之Lag和Lead()使用
- 643℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 635℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 631℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 618℃【数据统计分析】详解Oracle分组函数之CUBE
- 616℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 592℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)