postgresql bgworker SIGTERM处理程序调用了两次

时间:2018-07-31 09:14:50

标签: postgresql postgresql-10 sigterm

我在Mac上使用的是Postgresql 10.1。

我在终止使用SIGTERM的后台工作时遇到了麻烦。 在我的项目中,我使用 RegisterBackgroundWorker()创建一个新的后台工作程序。 我包括一个test_function,作为SIGTERM的信号处理程序。 没有定义其他信号处理程序。

  

pqsignal(SIGTERM,test_function)

当我发出pkill -15 postgres时,我看到该处理程序被调用了两次。为什么会发生?我想念什么吗?

1 个答案:

答案 0 :(得分:1)

您应该使用postmaster的PID而不是postgres,因为这将向具有该名称的所有进程(包括您的BackgroundWorker)发出SIGTERM。

kill postmaster-pid 

会做到的。