Ao tentar iniciar o serviço do PostgreSQL com o comando pg_ctl o seguinte erro pode ocorrer:
# pg_ctl start pg_ctl: cannot be run as root Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
Causa do Erro “pg_ctl: cannot be run as root” no PostgreSQL
A própria mensagem de erro acima avisa sobre a causa:
pg_ctl não pode ser executado com usuário root
Solução do Erro “pg_ctl: cannot be run as root” no PostgreSQL
Iremos supor que a pasta bin do postgrresql esteja em /usr/pgsql-12/bin. Acesse ela com cd /usr/pgsql-12/bin antes de qualquer procedimento para que possamos usar ./pr_ctl ao invés de /usr/pgsql-12/bin/pg_ctl
Também levaremos em conta que o usuário padrão(postgres) será usado.
Para executar corretamente o postgresql use um dos comandos abaixo:
MÉTODO 01
Use o sudo -u postgres ./pg_ctl start
sudo -u postgres ./pg_ctl start
MÉTODO 02
Faça log in com o usuário postgres e depois execute o comando
su postgres
./pg_ctl -D /bkp02/bkp_teste/pgsql/12/data/ start