如果我终止-QUIT主资源管理器进程,它会重新启动然后正常运行。但是,如果我杀死-ABRT主资源管理器进程,它会重新启动,但HAWQ上的进程会重新启动。那么HAWQ如何处理不同的终止信号呢?
答案 0 :(得分:2)
postmaster启动了多个流程
1.资源经理
2.掌握记录器的过程
3.统计收集程序
作家流程
5.检查站流程
6. seqserver流程
7. WAL发送服务器进程
8. DFS元数据缓存过程。
对于SIGNAL响应,不同的进程有不同的处理。
主记录程序进程与其他进程独立,其他进程重启不会影响它,其重启也不会影响其他进程。对于SIGQUIT,它会忽略。对于SIGABORT和SIGKILL,它将重新启动。
统计信息收集器进程不会影响其他进程,但会受到其他进程重启的影响。对于信号SIGQUIT,SIGABORT或SIGKILL,它将重新启动。
资源管理器进程,对于信号SIGQUIT,它将自动重启,对于信号SIGABORT和SIGKILL,将重新启动所有其他子进程。
信号SIGQUIT,SIGABORT或SIGKILL的其他5个进程将重启自身以及除主记录程序进程以外的所有其他子进程。
答案 1 :(得分:1)
HAWQ Resource Manager捕获信号SIGQUIT,并注册一个名为quitResManager的函数来处理信号。这个过程将和平地退出。但对于信号SIGABRT,资源管理器将根据SIGABORT的定义生成coredump。
由于资源管理器进程由postmaster分叉,postmaster进程会密切关注其子进程,如果查找子进程正常退出,将重启子进程本身,但如果发现错误,将重启所有子进程子。
因此,您可以在发送kill -QUIT后看到资源管理器进程本身已重新启动,但在发送kill -ABORT后,会看到HAWQ主服务器上的所有进程已重新启动。
答案 2 :(得分:0)
我想知道hawq资源管理器进程是否被SIGKILL杀死,父邮件主进程是否也会退出?
答案 3 :(得分:0)
@huan,如果任何子进程遇到错误,父postmaster将不会重启。但如果它本身遇到错误,它将不会重新启动任何人,所有子进程都将被杀死。