PgStat辅助进程是PG数据库系统的统计信息收集器,它专门负责收集数据库系统运行中的统计信息,
如在一个表和索引上进行了多少次插入与更新操作,
磁盘块的数量和元组的数量,每个表上最近一次执行清理和分析操作的时间,
以及统计每个用户自定义函数调用执行的时间等.
PgStat辅助进程收集的统计信息主要用于查询优化时的代价估算.
2.4 守护进程Postmaster PG信息及其处理函数列表 信号 信号处理函数SIGHUP SigHupHandler
SIGINT StatementCancelHandler
SIGTERM die
SIGQUIT quickdie
SIGALRM handle_sig_alarm
SIGPIPE SIG_IGN
SIGUSR1 CatchupInterruptHandler
SIGUSR2 NotifyInterruptHandler
SIGFPE FloatExceptionHandler
SIGCHLD 默认
SIGHUP简介
典型的例子是一个父进程fork子进程之后,父进程立即退出,这样子进程所在的进程组将变为孤儿进程组。这样的孤儿进程组中的每个停止(Stopped)状态的每个进程都将收到挂断信号(SIGHUP),然后又立即收到继续信号(SIGCONT)。所以fork子进程之后,退出父进程,如果子进程还需要继续运行,则需要处理挂断信号,否则进程对挂断信号的默认处理将是退出。
https://www.cnblogs.com/lvyahui/p/7389554.html
进程退出:SIGINT、SIGTERM和SIGKILL区别一、SIGINT、SIGTERM和SIGKILL区别
SIGINT与SIGTERM区别
1)SIGINT关联ctrl+c
2)SIGINT只能结束前台进程
3)通过ctrl+c对当前进程发送结束信号,信号被进程树接收到(即:不仅当前进程,子进程也会收到结束信号)
SIGTERM与SIGKILL
1)SIGTERM可以被阻塞、处理和忽略;因此有的进程不能按预期的结束
2)kill不使用参数:发送SIGTERM信号,只有当前进程收到信号,若当前进程被kill,则子进程的父进程就会更改为init,即pid为1
3)kill命令的默认不带参数发生的信号就是SIGTERM,让程序友好的退出
,当程序未退出时,可以使用kill -9强制退出
SIGINT
程序终止(interrupt)信号,
在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。
SIGQUIT
和SIGINT类似, 但由QUIT字符(通常是Ctrl-\)来控制.
进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。
SIGTERM
程序结束(terminate)信号,
与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令kill缺省产生这个信号。如果进程终止不了,我们才会尝试SIGKILL。
SIGSTOP
停止(stopped)进程的执行. 注意它和terminate以及interrupt的区别:该进程还未结束,
只是暂停执行. 本信号不能被阻塞, 处理或忽略.
在POSIX兼容的平台上, SIGALRM是在定时器终止时发送给进程的信息.
SIGPIPE往一个已经接收到FIN的套接中写是允许的,接收到的FIN仅仅代表对方不再发送数据。并不能代表我不能发送数据给对方。
往一个FIN结束的进程中写(write),对方会发送一个RST字段过来,TCP重置。如果再调用write就会产生SIGPIPE信号
通常,我们只需要忽略这个信号即可:signal(SIGPIPE,ISG_IGN);
https://www.cnblogs.com/wsw-seu/p/8413290.html
Linux的SIGUSR1和SIGUSR2信号SIGUSR1 用户自定义信号 默认处理:进程终止
SIGUSR2 用户自定义信号 默认处理:进程终止
当一个进程调用fork时,因为子进程在开始时复制父进程的存储映像,信号捕捉函数的地址在子进程中是有意义的,所以子进程继承父进程的信号处理方式。
但是当子进程调用exec后,因为exec运行新的程序后会覆盖从父进程继承来的存储映像,那么信号捕捉函数在新程序中已无意义,所以exec会将原先设置为要捕捉的信号都更改为默认动作。
SIGFPE