STOP_SIGNALS = {
'smart': 'TERM',
'fast': 'INT',
'immediate': 'QUIT',
}
def pg_ctl_kill(self, mode, pg_ctl):
try:
status = subprocess.call([pg_ctl, "kill", STOP_SIGNALS[mode], str(self.pid)])
except OSError:
return False
if status == 0:
return None
else:
return not self.is_running()
来自 Patroni 源码;