MHA监控进程异常退出(MHA版本:0.56)

最近遇到一个非常诡异的问题,mha后台进程自己中断退出了。以下是报错:
Mon Dec 21 20:16:07 2015 - [info] OK.
Mon Dec 21 20:16:07 2015 - [warning] shutdown_script is not defined.
Mon Dec 21 20:16:07 2015 - [info] Set master ping interval 1 seconds.
Mon Dec 21 20:16:07 2015 - [info] Set secondary check script: /etc/mha/bin/masterha_secondary_check -s 192.168.17.93 -s 192.168.18.93
Mon Dec 21 20:16:07 2015 - [info] Starting ping health check on 192.168.17.94(192.168.17.94:3306)..
Mon Dec 21 20:16:07 2015 - [info] Ping(SELECT) succeeded, waiting until MySQL doesn‘t respond..
Tue Dec 22 10:36:42 2015 - [info] Got terminate signal. Exit.

看报错第一反应理解为由于中断信号断开而导致退出程序

这里有个疑问:为什么我用nohup /etc/mha/bin/masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover &
这样的方式执行后台运行命令,怎么程序会随终端断开而退出呢?想不通。印象中以前执行都没有这样的问题的,肯定是哪里不对

查阅nohup相关的资料:
使用时注意:
在当shell中提示了nohup成功后,还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;如果在nohup执行成功后直接点关闭程序按钮关闭终端的话,这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown,起不到关掉终端后调用程序继续后台运行的作用。

看到这里回忆下之前自己的操作可能是有问题的,于是对nohup操作进行下面测试:
注:mha管理服务端是安装在A机器上,

测试1:直接连接mysqlA服务器,在A服务器执行nohup /etc/mha/bin/masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover & ,正常退出,或直接关闭终端退出都不会引起mha后台进程异常退出。

测试2:先连接mysqlB服务器,再从B服务器ssh到A服务器,再重复上面的命令当执行完后台命令后正常exit退出终端后,一切和上面的操作一样,mha后台进程不会异常退出。

测试3:先连接mysqlB服务器,再从B服务器ssh到A服务器,再重复上面的命令当执行完后台命令后非正常退出(终端超时断开或直接关闭securecrt程序)的话,这个时候mha后台进程也跟随终端退出而退出.

仔细回忆了下我确实是通过某台服务器ssh到mha服务器上面执行的命令没有正常退出终端造成的。问题终于找到了

当然如果你的问题和我的不一样也可以用另外方法避免后台进程异常退出,那就是把命令写在脚本里面通过运行脚本就万无一失了.

参考资料:

http://www.cnblogs.com/mysqlplus/p/5070753.html  --关于nohup
http://www.cnblogs.com/gomysql/p/4688920.html   --类似的问题解决方法

时间: 2024-10-14 05:22:47

MHA监控进程异常退出(MHA版本:0.56)的相关文章

MHA监控进程异常退出

这两天遇到一个非常诡异的问题,打算和大家分享一下.只所以诡异估计是自己知识面不够吧.线上的MHA一直没有开启自动切换,都是手动切换的,最近开启了自动切换以后,退出securecrt窗口以后发现监控进程异常自己退出了.报错日志如下: MHA版本:0.56 Checking the Status of the script.. OK Thu Jul 30 11:59:08 2015 - [info] OK. Thu Jul 30 11:59:08 2015 - [warning] shutdown_

详谈 UNIX 环境进程异常退出

原文链接:http://www.ibm.com/developerworks/cn/aix/library/1206_xiejd_unixexception/ 详谈 UNIX 环境进程异常退出 本文详细论述 UNIX 环境上的进程异常退出,将导致进程异常退出的各种情景归纳为两类,对每类情况详细分析了问题出现的根本原因,同时添加了相应的实例以易于您更好地进行了解.在此基础上,文章最后论述了应该如何避免和调试进程异常退出问题.希望读者阅读此文后,对进程异常退出问题有更深层的认识,有更系统的梳理,对调

YS VTM模块存在格式化字符串漏洞,可导致VTM进程异常退出【高危】

YS VTM模块存在格式化字符串漏洞,可导致VTM进程异常退出[高危] 问题描述:          YS VTM模块开放对外监听端口(8554和8664),此次使用sulley fuzzing框架对监听在8664端口的私有二进制协议进行测试,以检测可能发生的各种问题.在该协议中,客户端会向8664端口发送一个二进制+文本格式的报文,对该报文格式的各个字段进行fuzzing,发现当向服务端的VTM进程传入格式化字符串时会崩溃并退出. 测试步骤: 1.  分别在客户机和服务器安装sulley fu

ceph同步数据过程OSD进程异常退出记录

做的操作: ceph集群扩容了几个节点. 异常现象: ceph集群同步时,总是OSD进程异常的宕掉(同步一段时间数据后). ceph版本:  9.2.1 日志: 7月 25 09:25:57 ceph6 ceph-osd[26051]: 0> 2017-07-25 09:25:57.471502 7f46fe478700 -1 common/HeartbeatMap.cc: In function 'bool ceph::HeartbeatMap::_ch 7月 25 09:25:57 ceph

解决openoffice进程异常退出的办法:

实现以守护进程,定时检测openoffice是否退出,如果进程不存在,通过脚本将openoffice起起来即可. 具体操作步骤: 第一步: 将openoffice.sh脚本放置在root目录下面,(也可自行决定),如图所示: 脚本内容: [java] view plain copy #!/bin/sh #set -x OPENOFFICEPID=`ps -ef|grep "/opt/openoffice4/program/soffice"|grep -v grep|grep -v gr

使用websocket来监控是否异常退出或异常关闭登陆窗口

知识点:websocket获取本机IP&websocket前后端消息推送 解决的实际问题: 前端用户登陆时同一个账号密码只允许在一个IP上登陆: 同一个IP只允许登陆一个账户密码. 主要实现思路: 1.前端websocket 推送消息,创建一个new websocket,将前端的部分参数传给后台 sendMsg()  //发送数据 2.前后端建立连接触发,客户端可以通过这个URL来连接到WebSocket服务器端,当连接成功时则调用其自身的onOpen方法 后端增加session参数,通过它来给

nodejs进程异常退出处理方法

1. 捕获uncaughtException process.on('uncaughtException', function (err) { //打印出错误 console.log(err); //打印出错误的调用栈方便调试 console.log(err.stack): }); 2. 使用守护进程 例如:node-forever的守护和日志记录功能 安装非常容易 [sudo] npm install forever 使用也很简单 $ forever start app.js 原文地址:htt

supervisor进程异常挂掉

不久前,线上有一批机器晚上的时候supervisor进程异常退出,早上业务部门反映了这个问题,同一类机器18台中有15台supervisor挂了,于是启动supervisor及其纳管应用,并开始定位根因: 查看发现这15台机器/var/log/system.log日志在今早06:28分有更新,06:28有如下异常信息: Supervisor WARN received SIGTERM indicating exit request 经Google,定位到15台机器/var/log/apt/his

使用supervisor监控mha masterha_manager进程

我们在用mha自带的masterha_manager脚本做mysql主库故障自动切换时,需要考虑如何让masterha_manager监控进程一直处于正常运行的状态.而supervisor可以很好地解决这个问题,它可以将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启. 这里列一下部署要点和管理命令 一,supervisor 安装: sudo pip install supervisor 二,supervisor配置: mkdir -p /etc/superviso