Acabei de atualizar meu sistema a partir de 14.04. LTS para 16.04.1 LTS, o postgresql não inicia no systemd:
/etc/init.d/postgresql start
[ ok ] Starting postgresql (via systemctl): postgresql.service
# /etc/init.d/postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Вт 2016-08-09 13:40:51 MSK; 3min 23s ago
Process: 23142 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 23142 (code=exited, status=0/SUCCESS)Seems that
Parece que o script systemd contém dados incorretos:
# cat /lib/systemd/system/postgresql.service
# systemd service for managing all PostgreSQL clusters on the system. This
# service is actually a systemd target, but we are using a service since
# targets cannot be reloaded.
[Unit]
Description=PostgreSQL RDBMS
[Service]
Type=oneshot
ExecStart=/bin/true
ExecReload=/bin/true
RemainAfterExit=on
[Install]
WantedBy=multi-user.target
Qual deve ser o script correto para o postgresql?
16.04
systemd
postgresql
Artur Eshenbrener
fonte
fonte
systemctl enable [email protected]
é tudo o que você precisa.systemctl edit [email protected]
para criar um arquivo de substituição com as directivas Systemd, tais como: [Serviço] agradável = 15 IOSchedulingClass = 2 IOSchedulingPriority = 7O Systemd deve usar o script de
/etc/init.d
. Em vez disso, o systemd usa algum tipo de arquivo de modelo. Para corrigir isso, execute as seguintes etapas:Remova o script de serviço inválido:
# rm /lib/systemd/system/postgresql.service
Recarregar scripts daemon:
# systemctl daemon-reload
Ative o serviço postgresql:
# systemctl enable postgresql
Depois disso, você seria capaz de iniciar o postgres com as variantes preferidas:
sudo systemctl start postgresql
,sudo service postgresql start
ousudo /etc/init.d/postgresql start
. Para verificar que o PostgreSQL realmente executado, por favor verificar o status do serviço:sudo systemctl status postgresql
. Deve parecer com:fonte
systemctl _action_ postgresql@_version_
executarEu tive o mesmo problema depois de limpar o postges9 e instalei 10 no meu ubuntu16. Inicialmente, editei o arquivo /lib/systemd/system/postgresql.service com o seguinte conteúdo:
E eu posso usar systemctl restart / stop / start para controlar o serviço postgresql. No entanto, por algum motivo, o arquivo acima foi substituído (talvez após a atualização do sistema) e não pude executar o comando systemctl para iniciar e parar o servidor postgresql. Após algumas leituras, percebi que você não deveria editar o arquivo acima. Em vez disso, você deve usar o systemctl edit foo para substituir os padrões. Depois de seguir a solução sugerida pelo link a seguir, meu sistema parece estar funcionando corretamente com o postgresql.
Como substituir ou configurar serviços systemd?
fonte
Não é a melhor solução, mas isso resolve o problema sem ter que mergulhar em nada. Adicione isso ao cron:
fonte