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 ? --類似的問題解決方法
?
?
?
轉載于:https://www.cnblogs.com/mysqlplus/p/5070757.html
總結
以上是生活随笔為你收集整理的MHA监控进程异常退出(MHA版本:0.56)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVN+post-commit 搭建自动
- 下一篇: 青瓷引擎之纯JavaScript打造HT