Acabo de actualizar mi sistema desde 14.04. LTS a 16.04.1 LTS, postgresql no se inicia en 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 el script systemd contiene datos incorrectos:
# 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
¿Cuál debería ser el script correcto para postgresql?
16.04
systemd
postgresql
Artur Eshenbrener
fuente
fuente
systemctl enable [email protected]
es todo lo que necesitas.systemctl edit [email protected]
para crear un archivo de anulación con directivas systemd como: [Servicio] Nice = 15 IOSchedulingClass = 2 IOSchedulingPriority = 7Systemd debería usar script de
/etc/init.d
. En cambio, systemd usa algún tipo de archivo de plantilla. Para arreglar eso, sigue esos pasos:Eliminar script de servicio no válido:
# rm /lib/systemd/system/postgresql.service
Recargar scripts de daemon:
# systemctl daemon-reload
Habilitar el servicio postgresql:
# systemctl enable postgresql
Después de eso, usted sería capaz de iniciar postgres con cualquiera de las variantes preferidas:
sudo systemctl start postgresql
,sudo service postgresql start
osudo /etc/init.d/postgresql start
. Para comprobar que realmente se ejecutan PostgreSQL, por favor, compruebe el estado de servicio:sudo systemctl status postgresql
. Se ve como:fuente
systemctl _action_ postgresql@_version_
que se ejecuteTuve el mismo problema después de purgar postges9 e instalé 10 en mi ubuntu16. Inicialmente edité el archivo /lib/systemd/system/postgresql.service con el siguiente contenido:
Y puedo usar systemctl restart / stop / start para controlar el servicio postgresql. Sin embargo, por alguna razón, el archivo anterior se sobrescribió (tal vez después de la actualización del sistema) y no pude ejecutar el comando systemctl para iniciar y detener más el servidor postgresql. Después de leer un poco, me di cuenta de que se supone que no debes editar el archivo anterior. En su lugar, debe usar systemctl edit foo para sobrescribir los valores predeterminados. Después de seguir la solución sugerida por el siguiente enlace, mi sistema parece estar funcionando correctamente con postgresql.
¿Cómo anulo o configuro los servicios systemd?
fuente
No es la mejor solución, pero esto resuelve el problema sin tener que sumergirse en nada. Agregue esto a cron:
fuente