Je viens de mettre à jour mon système à partir du 14.04. LTS à 16.04.1 LTS, postgresql ne démarre pas sur 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
Semble que le script systemd contient des données incorrectes:
# 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
Quel devrait être le script correct pour postgresql?
16.04
systemd
postgresql
Artur Eshenbrener
la source
la source
systemctl enable [email protected]
est tout ce dont vous avez besoin.systemctl edit [email protected]
pour créer un fichier de substitution avec des directives systemd telles que: [Service] Nice = 15 IOSchedulingClass = 2 IOSchedulingPriority = 7Systemd devrait utiliser le script de
/etc/init.d
. Au lieu de cela, systemd utilise une sorte de fichier modèle. Pour résoudre ce problème, procédez comme suit:Supprimer le script de service non valide:
# rm /lib/systemd/system/postgresql.service
Recharger les scripts du démon:
# systemctl daemon-reload
Activer le service postgresql:
# systemctl enable postgresql
Après cela, vous seriez en mesure de commencer postgres avec des variantes préférées:
sudo systemctl start postgresql
,sudo service postgresql start
ousudo /etc/init.d/postgresql start
. Pour vérifier que postgresql fait exécuter, s'il vous plaît vérifier l'état du service:sudo systemctl status postgresql
. Cela devrait ressembler à:la source
systemctl _action_ postgresql@_version_
courirJ'ai eu le même problème après avoir purgé postges9 et installé 10 sur mon ubuntu16. Initialement, j'ai édité le fichier /lib/systemd/system/postgresql.service avec le contenu suivant:
Et je peux utiliser systemctl restart / stop / start pour contrôler le service postgresql. Cependant, pour une raison quelconque, le fichier ci-dessus a été écrasé (peut-être après la mise à jour du système) et je ne pouvais plus exécuter la commande systemctl pour démarrer et arrêter le serveur postgresql. Après quelques lectures, j'ai réalisé que vous n'êtes pas censé éditer le fichier ci-dessus. Au lieu de cela, vous devez utiliser systemctl edit foo pour remplacer les valeurs par défaut. Après avoir suivi la solution suggérée par le lien suivant, mon système semble fonctionner correctement avec postgresql.
Comment remplacer ou configurer les services systemd?
la source
Ce n'est pas la meilleure solution, mais cela résout le problème sans avoir à plonger dans quoi que ce soit. Ajoutez ceci à cron:
la source