supervisor 是一个可以管理进程的软件,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。比如我们要用它管理elasticsearch  就可以把管理es的专属用户密码  写入配置文件。

  1. 网上有很多supervisor的安装教程,也比较简单。这里就不再赘述。开始使用的时候需要先看一看 配置文件 路径:/etc/supervisord.conf  。

  

  因为我们可能会用  supervisor 管理很多进程 写在一个文件会很大,所以通常需要 每一个 进程独立出一个 以 .ini 为后缀的配置文件 单独管理。

  按照配置文件默认的加载路径  supervisord.d/ 下创建了  elasticsearch.ini  文件。

  

  command=/usr/local/elasticsearch-6.6.1/bin/elasticsearch ; 运行程序的命令
  autorestart=true ; 程序意外退出是否自动重启
  autostart=true ; 是否自动启动
  stderr_logfile=/var/log/supervisor/elasticsearch_err.log ; 错误日志文件
  stdout_logfile=/var/log/supervisor/elasticsearch_out.log ; 输出日志文件
  environment=JAVA_HOME=/usr/local/jdk1.8.0_201 ; 进程环境变量
  user=ela ; 进程执行的用户身份
  password=ela
  stopsignal=INT
  startsecs=10 ; 自动重启间隔

  写入上图中的配置信息(当时没有写  environment  JAVA_HOME 的配置)

所以   执行  supervisorctl  reload  、 supervisorctl  restart  elasticsearch    总是失败。

2、开始排错  (在坑里的感觉真不好)

    

  第一个直觉就是去查看  supervisor的日志了  以为  elasticsearch  根本就没启动 也不会输出 日志

      

  

  所以一直在查    exit status 1; not expected   elasticsearch entered FATAL state, too many start retries too quickly   这个问题  ,然后  会发现管理很多其他的  进程  出错时也会  报这种错  也试了很多  搜到的  解决方法  ,但是结果肯定都不适用。

  3、出坑

找解决方法找的  都眼疼了  。  偶然的契机我去  看了眼   elasticsearch.ini  配置文件中  指定的   输出日志    和 错误 输出日志  。惊奇的发现   人家已经默默滴  记录了好多日志啦(手动捂脸) 。

  

  所以  直接打开  error  日志

  

  所以  真相浮出水面  直接去配置文件添加    JAVA_HOME  环境变量   再重新reload  、 start   终于运行了。

     

supervisor---elasticsearch 采坑回顾的更多相关文章

  1. java采坑之路

    判断相等 字符串判断相等         String str1 = null;         String str2 = "java金融";        // str1.eq ...

  2. Redis集群搭建采坑总结

    背景 先澄清一下,整个过程问题都不是我解决的,我在里面就是起了个打酱油的角色.因为实际上我负责这个项目,整个过程也比较清楚.之前也跟具体负责的同事说过,等过段时间带他做做项目复盘.结果一直忙,之前做的 ...

  3. Cloudera Manager 5.9 和 CDH 5.9 离线安装指南及个人采坑填坑记

    公司的CDH早就装好了,一直想自己装一个玩玩,最近组了台电脑,笔记本就淘汰下来了,加上之前的,一共3台,就在X宝上买了CPU和内存升级了下笔记本,就自己组了个集群. 话说,好想去捡垃圾,捡台8核16线 ...

  4. angular采坑记录

    在angular中会遇到一些莫名的问题,导致不能完成想要的功能,可能是某项用法使用错误,或许是angular相对应不支持,或者是我们功力根本就没有达到.为了在每次采坑之后能有所收获,再遇到时能理解其根 ...

  5. 分布式改造剧集之Redis缓存采坑记

    Redis缓存采坑记 ​ 前言 ​ 这个其实应该属于分布式改造剧集中的一集(第一集见前面博客:http://www.cnblogs.com/Kidezyq/p/8748961.html),本来按照顺序 ...

  6. 采坑:python base64

    需求:  读取文本内容,对字符串进行base64加密 >>> str = 'aaaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbb\nccc ...

  7. Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)

    系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7 ...

  8. Spring Cloud Config采坑记

    1. Spring Cloud Config采坑记 1.1. 问题 在本地运行没问题,本地客户端服务能连上本地服务端服务,可一旦上线,发现本地连不上线上的服务 服务端添加security登录加密,客户 ...

  9. rabbitmq在ios中实战采坑

    1. rabbitmq在ios中实战采坑 1.1. 问题 ios使用rabbitmq连接,没过多久就断开,并报错.且用android做相同的步骤并不会报错,错误如下 Received connecti ...

随机推荐

  1. vbs setkeys 特殊符号

    set keys={~}!^@^#^${%%}{^&^}{^^}{*}{(}{)}{_}{-}{=}{+}.;:'"

  2. hihoCoder - 1079 - 离散化 (线段树 + 离散化)

    #1079 : 离散化 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 小Hi和小Ho在回国之后,又一次过起了朝7晚5的学生生活.当然了.他们还是在一直学习着各种算法 ...

  3. Linux vs Window

    目前国内Linux更多的是应用于服务器上,而桌面操作系统更多使用的是Window.主要区别如下: 比较 Windows Linux 界面 界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷 ...

  4. jQuery - 广告图片轮播切换

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. Android内存解析(二)— 详解内存,内部存储和外部存储

    总述 觉得十分有必要搞清楚内存,内部存储和外部存储的区别,还有我们在开发中真正将数据存在了手机的哪儿. 先提一个问题:手机设置的应用管理中,每个App下都有清除数据和清除缓存,清除的分别是哪里的数据? ...

  6. golang import all 类似python import * 效果

    import "io/ioutil" func main() { content, err = iotuil.ReadFile("somefile.txt") ...

  7. bzoj4004 [JLOI2015]装备购买——线性基+贪心

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4004 今天讲课讲到的题,据说满足拟阵的性质,所以贪心是正确的: 总之就贪心,按价格从小到大排 ...

  8. uoj#149

    dp 没想出来 最先开始想 dp[i][j][k]表示s匹配到i,t匹配到j,当前分了k段的方案数 s[i]==t[j] dp[i][j][k]+=dp[i-1][j-1][k-1] s[i]==t[ ...

  9. Sudoku(dfs)

    http://poj.org/problem?id=2676 填九宫格 思路:将每一行,每一列及每一个3*3块中出现的数字标记上,将可填的空的位置记录下来,枚举1-9,填入合适的数. #include ...

  10. PDO获取数据乱码的解决方法

    确保PHP文件编码格式为UTF8 确保数据字段格式为UTF8 PDO中设置编码格式,有如下三种方式: 方式1: 写在初始化dsn中 define( 'DB_DSN', 'mysql:host=loca ...