supervisor监控业务程序(2)
时间:2022-07-22
本文章向大家介绍supervisor监控业务程序(2),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
对于直接启动jar包的程序进行监控
# cat javarisk.ini
[program:javarisk]
command=/usr/bin/java -Xms1024m -Xmx1024m -jar riskcontrol-server.jar --spring.profiles.active=test
directory=/export/servers/java_risk
stdout_logfile=/export/servers/supervisor/logs/javarisk.log
autostart=true
autorestart=true
startsecs=5
priority=1
stopasgroup=true
killasgroup=true
配置完成后执行
supervisorctl update
supervisorctl start javarisk
supervisorctl status javarisk
监控tomcat程序
# cat app.ini
[program:app]
command=/opt/app/tomcat-app/bin/catalina.sh run
stdout_logfile=/export/servers/supervisor/logs/app.log
autostart=true
autorestart=true
startsecs=5
priority=1
stopasgroup=true
killasgroup=true
不能用shutdown.sh 和startup.sh来进行启动控制,需要使用catalina.sh run这种方式来进行启动,配置完成后重启即可
supervisorctl update
supervisorctl start app
监控nginx
# cat nginx.ini
[program:nginx]
command=/export/server/nginx/sbin/nginx -c /export/server/nginx/conf/nginx.conf -g 'daemon off;'
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile_maxbytes=20MB
stdout_logfile=/export/server/supervisor/logs/nginx.log
stderr_logfile=/export/server/supervisor/logs/nginx_err.log
stopasgroup=true
killasgroup=true
需要注意的是,supervisor不能监控放在后台的服务,所以不管是nginx还是tomcat都要放在前台执行,supervisor会将其放在后台执行。
监控redis
# cat redis.ini
[program:redis-6379]
command=/usr/bin/redis-server /etc/redis.conf
autostart=true
autorestart=true
daemonize=no #这里要设置一下,设置成no
stdout_logfile_maxbytes=20MB
stdout_logfile=/export/servers/supervisor/logs/redis-6379.log
stopasgroup=true
killasgroup=true
[program:redis-6380]
command=/usr/bin/redis-server /etc/6380/redis.conf
autostart=true
autorestart=true
daemonize=no
stdout_logfile_maxbytes=20MB
stdout_logfile=/export/servers/supervisor/logs/redis-6380.log
stopasgroup=true
killasgroup=true
redis的配置文件也要修改下,将daemonize yes改为daemonize no
- 如何使用Spark Streaming读取HBase的数据并写入到HDFS
- Hive Load本地数据文件异常分析
- 使用Java代码通过JDBC连接只启用Sentry的Impala异常分析
- 如何在CDSW中定制Docker镜像
- 干货:排名前 16 的 Java 工具类!
- 危险:会话固定攻击漏洞,你们的系统都堵上了吗?
- 深度学习入门者必看:25个你一定要知道的概念
- 如何在CM中启用YARN的使用率报告
- 如何修改CDSW服务的DNS和HOSTNAME
- 想尝试搭建图像识别系统?这里有一份TensorFlow速成教程
- 如何查看集成Sentry后Hive作业的真实用户
- 如何在Impala中实现拉链表
- 多图见证模拟机器人的逆天成长:论进化策略在强化学习中的应用
- Hue禁止用户下载数据问题分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法