9.4. 集群守护进程崩溃
RGManager 有一个监控进程可在主
rgmanager
进程意外失败时重启该主机。这就可以 fence 该集群节点,且 rgmanager
可在另一台主机中恢复该服务。监控守护进程探测到主 rgmanager
崩溃时,它就会重启该集群节点,同时活动的集群节点将探测到该集群节点已离开,并将其从该集群中逐出。
较小数字的进程 ID(PID)是 watchdog 进程,可在其子进程(有较大 PID 数字的进程)崩溃时起作用。使用
gcore
捕获 PID 较大进程的 core 可帮助对崩溃的守护进程进行故障排除。
安装所需软件包捕获和查看 core,并保证
rgmanager
和 rgmanager-debuginfo
是同一版本,否则捕获的应用程序 core 可能不可用。
$ yum -y --enablerepo=rhel-debuginfo install gdb rgmanager-debuginfo
9.4.1. 在运行时捕获 rgmanager
Core
它启动时有两个
rgmanager
进程。您必须捕获有较高 PID 的那个 rgmanager
进程。
以下是执行
ps
命令时显示两个 rgmanager
进程的输出结果示例。
$ ps aux | grep rgmanager | grep -v grep root 22482 0.0 0.5 23544 5136 ? S<Ls Dec01 0:00 rgmanager root 22483 0.0 0.2 78372 2060 ? S<l Dec01 0:47 rgmanager
在下面的示例中,使用
pidof
程序自动确定 pid 数字较高的进程,即生成 core 的那个进程的 pid。该命令为进程 22483,就是那个较高的 pid 数字,捕获程序 core。
$ gcore -o /tmp/rgmanager-$(date '+%F_%s').core $(pidof -s rgmanager)