O Postgresql não inicia, “conflito de soquete”

1

Eu tenho um problema ao iniciar o Postgresql no Gentoo.

$ /etc/init.d/postgresql-9.1 start
 * Socket conflict.
 * A server is already listening on:
 *     /var/run/postgresql/.s.PGSQL.5432
 * HINT: Change PGPORT to listen on a different socket.

Eu removi o arquivo /var/run/postgresql/.s.PGSQL.5432 o serviço é iniciado e funciona bem. Eu acho que o sever desligou e deixou o arquivo lá. Eu verifiquei com o netstat para ver se havia um processo de escuta naquela porta, mas não era nenhum.

Minha pergunta é: como posso evitar esse problema no futuro?

    
por F.C. 02.05.2012 / 16:51

2 respostas

2

O soquete deve ser removido quando o postgres for desligado (sem problemas). O mais provável é que o computador tenha sido reiniciado sem limpeza (falta de energia, botão de reinicialização, ...) ou o postgres tenha caído e não tenha tempo / chance de remover o arquivo de soquete.

Se você fizer um desligamento / reinicialização limpo, isso não deve acontecer. Se o postgres falha, você tem um problema maior do que um socket obsoleto. Se hard-reboots acontecerem com frequência, você tem uma grande chance de perda / corrupção de dados.

Você pode excluir soquetes de um dos scripts init (depende da distribuição) no momento da inicialização ou editar o script init postgres para excluir o soquete antes de iniciar (perigoso se você o executar acidentalmente quando um postgresd já estiver em execução e você delete seu socket).

    
por 02.05.2012 / 16:56
0

Se não for um bug de software, você só precisa ter certeza de parar o servidor postgresql normalmente quando necessário. Isso também é crítico para evitar a perda de dados.

    
por 02.05.2012 / 16:55