博主信息
博文 143
粉丝 1
评论 0
访问量 425533
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
linux(centos)下安装supervisor进程管理工具
弘德誉曦的博客
原创
1242人浏览过

       

在接触supervisor进程管理工具之前,使用springboot打包部署到linux服务器的流程是这样子的,如下图所示:
流程展示
上图展示的就是最一般的流程,如果项目是小项目或者demo可以这样子去部署,但是实际生产中会有各种各样的问题存在,比如:

  1. 项目发布之后,由于各种可能的原因,服务器宕机或者服务进程挂掉,不能自动重启;
  2. 如果项目是频繁更新,频繁发布,这样子简直会把人累死;
  3. ...
    ok,今天先来解决第一个问题,服务重启的问题。

supervisor介绍

Supervisor,是一个进程控制系统,是一个客户端/服务器端系统允许用户在UNIX-LIKE 操作系统中去监控,控制一些进程。Supervisor作为主进程,Supervisor下管理的时一些子进程,当某一个子进程异常退出时,Supervisor会立马对此做处理,通常会守护进程,重启该进程,保证进程可用。

supervisor安装

一般服务器都部署在ecs上面,推荐使用yum命令安装,简单省心。
首先,使用命令

yum -y install  supervisor

supervisor配置

系统会自动安装,等待安装完毕之后,输入命令:

vim /etc/supervisor.d/test.ini

使用vim命令新建一个test.ini文件,该文件是管控进程的配置文件,内容大致如下,可根据个人需要增删配置:

#启动程序的名称
[program:test] 
 #配置的java启动环境
 environment=JAVA_HOME=/app/jdk/jdk1/bin
 #启动命令
 command= /app/jdk/jdk1/bin/java -Xms2048m -Xmx4096m -Dspring.profiles.active=dev -Dserver.port=8080 -jar /app/jar/test.jar
 #jar所在文件目录
 directory=/app/jar 
#用户
user=root 
stopsignal=INT
#自动启动
autostart=true 
#自动重启
autorestart=true 
#重启时间1s
startsecs=1 
#错误日志
stderr_logfile=/app/log/sp/test.err.log 
#标准打印日志,满50MB区分
stdout_logfile=/app/log/sp/test.out.log

至此,supervisor配置结束,如果有多个jar项目要跑,可以复制多个ini项目,注意内存分配。

supervisor启动

使用如下命令来启动或者更新supervisor,

# 启动
supervisorsystemctl  start supervisord
# 更新配置文件
supervisorctl  update
# 启动某个应用
supervisorctl  start aaaa
supervisorctl  stop aaaa
# 查看状态
supervisorctl   status

总结

使用supervisor工具之后,可以把自己解放出来,不用再担心深夜服务停掉而自己不知道的问题,由于服务器部署在阿里云上面,只要不是大规模断电等极其意外的情况,都可以保证在服务器不挂的情况下,保证系统的正常运转。
晚上终于可以安心睡觉了,下篇文章采用持续集成解决第二个问题。


查看所有任务状态: supervisorctl status

# supervisorctl status
nginx                           RUNNING   pid 18752, uptime 22:59:40
redis                            RUNNING   pid 14542, uptime 45 days, 19:18:08
  • 1
  • 2
  • 3

第一列是服务名;
第二列是运行状态,RUNNING表示运行中,FATAL 表示运行失败,STARTING表示正在启动,STOPED表示任务已停止; 
第三/四列是进程号,最后是任务已经运行的时间。

查看单个任务状态: supervisorctl status 服务名

# supervisorctl status nginx
nginx                      RUNNING   pid 26073, uptime 1 day, 23:12:10
  • 1
  • 2

启动任务:supervisorctl start 服务名

# supervisorctl stop nginx
nginx: stopped
#supervisorctl status nginx
nginx                      STOPPED   Jan 05 01:59 PM
  • 1
  • 2
  • 3
  • 4

停止任务:supervisorctl stop 服务名

# supervisorctl start nginx
nginx: started
# supervisorctl status nginx
nginx                      RUNNING   pid 32207, uptime 0:00:05
  • 1
  • 2
  • 3
  • 4

重启任务:supervisorctl restart 服务名

# supervisorctl restart nginx
nginx: stopped
nginx: started
# supervisorctl status nginx
nginx                      RUNNING   pid 4952, uptime 0:00:03
  • 1
  • 2
  • 3
  • 4
  • 5

其他命令:
supervisorctl help:帮助命令
supervisorctl update :配置文件修改后可以使用该命令加载新的配置
supervisorctl reload: 重新启动配置中的所有程序


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学