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 .