Você precisa aumentar o tamanho máximo de um pedaço de memória compartilhada que o kernel do Linux permite alocar de uma só vez (conhecido como parâmetro SHMMAX)
Você precisa editar /etc/sysctl.conf
e adicionar a seguinte linha:
kernel.shmmax = 41943040
(onde 41943040
é o tamanho da memória em bytes, ou seja, 40 megabytes. No sistema de produção, você provavelmente quer aumentar esse valor - a documentação do Postgres recomenda começar com 1/4 da memória disponível)
Em seguida, execute
sudo sysctl -p
e reinicie o postgres novamente.
Como alternativa, você pode editar /etc/postgresql/<version>/main/postgresql.conf
e reduzir o valor do parâmetro shared_buffers
.
Este é um bug, mais informações aqui
(há também o arquivo /etc/sysctl.d/30-postgresql-shm.conf
, que deve ser usado para este propósito, mas não parece ser incluído na configuração principal, então a edição não tem efeito)