Por padrão, minha instalação do PostgreSQL estava criando um soquete em /tmp , mas meu cliente de linha de comando psql estava procurando em /var/run/postgresql/.s.PGSQL.5432 .
Para corrigir isso, eu editei postgresql.conf e mudei o diretório para
unix_socket_directories = '/var/run/postgresql/'
Infelizmente, não há, por padrão, nenhum diretório postgresql no diretório var/run . Então, eu criei e iniciei o servidor, e tudo funcionou bem. Assim que encerrar e reiniciar o servidor, por algum motivo, o diretório /var/run/postgresql desaparecerá. Isso faz com que a inicialização do postgres falhe com um erro:
FATAL: could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": No such file or directory
Ajuda apreciada!