终止和取消进程的区别

18
这两个函数有什么区别:pg_cancel_backend(pid int)和pg_terminate_backend(pid int)? 对我来说它们的作用非常相似。

这不是关于干净关闭和粗暴关闭(kill -9)之间的区别吗? - Denis de Bernardy
1个回答

31

pg_cancel_backend()用于取消正在运行的查询,而pg_terminate_backend()则会终止整个进程,从而终止数据库连接。

当程序创建数据库连接并发送查询时,您可以取消一个查询而不销毁连接和停止其他查询。如果销毁整个连接,则一切都将被停止。


这两个信号的行为有没有官方文档的参考?我自己找不到。 - chutz
@chutz:请参考http://www.postgresql.org/docs/current/interactive/functions-admin.html。 - Frank Heikens
7
该文件仅提到这两个函数向后端发送信号,但并未解释这些信号的作用。有关向主进程发送信号的文档,但没有关于向单个后端发送信号的内容。 - chutz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接