7 votes

Le fichier /System/Library/LaunchDaemons/com.apple.servermgrd.plist est manquant - Cela empêche postgres de démarrer correctement

J'ai récemment mis à jour mon Mac Mini Server vers Yosemite et l'application Server 4.0. Lorsque j'ai essayé de vérifier que Postgres est disponible en exécutant sudo serveradmin fullstatus postgres, j'ai obtenu l'erreur suivante :

postgres:error = <62706c69 73743030 d4010203 04050618 19582476 65727369 6f6e5824 6f626a65 63747359 24617263 68697665 72542474 6f701200 0186a0a4 07081112 55246e75 6c6cd409 0a0b0c0d 0e0f1056 4e53436f 64655a4e 53557365 72496e66 6f584e53 446f6d61 696e5624 636c6173 73100180 00800280 035f1014 636f6d2e 6170706c 652e7365 72766572 6d677264 d2131415 165a2463 6c617373 6e616d65 5824636c 61737365 73574e53 4572726f 72a21517 584e534f 626a6563 745f100f 4e534b65 79656441 72636869 766572d1 1a1b5472 6f6f7480 0108111a 232d3237 3c424b52 5d666d6f 7173758c 919ca5ad b0b9cbce d3000000 00000001 01000000 00000000 1c000000 00000000 00000000 00000000 d5>
postgres:errorDescription = "L'opération n'a pas pu être terminée. (erreur com.apple.servermgrd 1.)"
postgres:errorCode = 1

Lorsque j'ai tenté d'exécuter sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.servermgrd.plist, j'ai obtenu l'erreur suivante :

/System/Library/LaunchDaemons/com.apple.servermgrd.plist: Aucun fichier ou dossier de ce type

J'ai essayé de faire la même chose dans /Library/Preferences/com.apple.servermgrd.plist et j'ai obtenu l'erreur suivante :

/Library/Preferences/com.apple.servermgrd.plist: Identifiant de service invalide ou manquant

Je suppose que le premier fichier est celui qu'il essaie d'accéder et qui est manquant. Je ne sais pas ce qui a supprimé le fichier. Comment puis-je créer ce fichier ? J'ai des sites web utilisant le Service Web qui sont hors service.

Je suppose que si je ne parviens pas à résoudre ce problème, je vais restaurer la sauvegarde juste avant la mise à niveau vers Yosemite sur mes deux serveurs. Tant pis.

11voto

Tim BL Points 91

"Identifiant de service invalide ou manquant" semble signifier que votre fichier plist n'a pas la section ou a mal orthographié une section comme

Label
com.foo.bar

Notez que "Label" doit commencer par une majuscule.

1voto

sungiant Points 3035

À partir de la version 4.0 d'OS X Server, il semble qu'Apple ne veut pas que nous utilisions le PostgreSQL intégré:

La base de données Postgres utilisée par OS X Server est uniquement destinée à être utilisée avec les données de service utilisées par le système. Évitez d'ajouter du contenu personnalisé à cette base de données. Si vous souhaitez exécuter Postgres sur votre OS X Server, vous devriez télécharger et installer votre propre instance.

Mais il y a toujours un moyen de l'utiliser. Utilisez les commandes suivantes dans le Terminal:

sudo mkdir -p /Library/Server/PostgreSQL/Config
sudo chown -R _postgres:_postgres /Library/Server/PostgreSQL
sudo -u _postgres vim /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist

ensuite copiez, collez et enregistrez ceci:

    ProgramArguments

        -D
        /Library/Server/PostgreSQL/Data
        -c
        listen_addresses=127.0.0.1,::1
        -c
        log_connections=on
        -c
        log_directory=/Library/Logs/PostgreSQL
        -c
        log_filename=PostgreSQL.log
        -c
        log_line_prefix=%t 
        -c
        log_lock_waits=on
        -c
        log_statement=ddl
        -c
        logging_collector=on
        -c
        unix_socket_directories=/private/var/pgsql_socket
        -c
        unix_socket_group=_postgres
        -c
        unix_socket_permissions=0770

Editez également

sudo vim /System/Library/LaunchDaemons/org.postgresql.postgres.plist

ensuite copiez et collez ceci:

    Disabled

    Label
    org.postgresql.postgres
    UserName
    _postgres
    GroupName
    _postgres
    ProgramArguments

        /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres
        --apple-configuration
        /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist

    OnDemand

    StandardErrorPath
    /Library/Logs/PostgreSQL/PostgreSQL.log
    StandardOutPath
    /Library/Logs/PostgreSQL/PostgreSQL.log

Pour installer faire

sudo launchctl load -w /System/Library/LaunchDaemons/org.postgresql.postgres.plist
sudo -u _postgres psql postgres

et Postgres vous saluera avec

psql (9.3.5)
Type "help" for help.
postgres=#

0voto

Leland Wallace Points 685

Dans les versions les plus récentes de Mac OS X Server (tout ce qui est exécuté à partir de Server.app), le fichier plist de launchd pour le démon backend du serveur se trouve à l'intérieur de l'ensemble Server.app et n'est plus géré directement par launchctl. Si vous avez un fichier à l'ancien emplacement, il proviendra d'un système antérieur et ne sera plus fonctionnel.

De même avec le fichier com.apple.servermgrd.plist dans les préférences, ce n'est pas un plist de travail de launchd et ne peut pas être chargé par launchctl.

La majorité des fichiers de configuration dans Server 4.0 et ultérieur se trouvent dans /Library/Server

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X