我在Mac上使用的是Postgresql 10.1。
我在终止使用SIGTERM的后台工作时遇到了麻烦。 在我的项目中,我使用 RegisterBackgroundWorker()创建一个新的后台工作程序。 我包括一个test_function,作为SIGTERM的信号处理程序。 没有定义其他信号处理程序。
pqsignal(SIGTERM,test_function)
当我发出pkill -15 postgres
时,我看到该处理程序被调用了两次。为什么会发生?我想念什么吗?
答案 0 :(得分:1)
您应该使用postmaster的PID而不是postgres,因为这将向具有该名称的所有进程(包括您的BackgroundWorker)发出SIGTERM。
kill postmaster-pid
会做到的。