O -w
flag funciona periodicamente tentando se conectar ao seu servidor. Obviamente, qualquer coisa que impeça uma conexão com seu servidor fará com que pg_ctl
pense que seu servidor ainda não foi iniciado. Então, ele fica por aí, tentando novamente até o tempo limite especificado. Quando atinge o tempo limite, ele retorna um código de saída diferente de zero para systemd
e o systemd chama automaticamente o comando ExecStop
configurado, parando efetivamente o servidor.
Se você conseguir se conectar ao seu servidor ao iniciá-lo manualmente com pg_ctl
(ou seja, não apenas em ps -ef
), é possível que alguma variável de ambiente seja diferente ( PGPORT
, PGDATA
).
Outra coisa que pode causar isso é tentar recuperar ou iniciar um servidor em espera. Até que o servidor esteja completamente pronto, ele aceitará conexões socker, mas registrará um erro e recusará qualquer consulta. Se você estiver fazendo uma pausa no final da recuperação ou aguardando em espera, o servidor nunca estará pronto.
Pode haver algumas informações úteis em pg_log
no diretório PGDATA
. Pelo menos, isso indicará se o servidor está vendo, mas rejeitando as consultas de pg_ctl
.