0 votes

Exécution de Postgres en tant que démon de lancement

Je travaille à la mise en place d'un serveur psql et j'aimerais donc que postgres s'exécute dès que l'ordinateur est allumé, que je sois connecté ou non. (La machine fonctionne sous OS X Yosemite.) J'ai configuré un démon de lancement pour faire cela, mais cela ne fonctionne pas. syslog donne les messages d'erreur suivants :

Jul 14 17:43:01 user@server sudo[276]:     jaia : TTY=ttys000 ; 
PWD=/Users/jaia ; USER=root ; COMMAND=/usr/bin/nano /Library/LaunchDaemons/homeb
rew.mxcl.postgresql.plist
Jul 14 17:44:35 localhost com.apple.xpc.launchd[1] (homebrew.mxcl.postgresql): T
his service is defined to be constantly running and is inherently inefficient.
Jul 14 17:44:44 localhost com.apple.xpc.launchd[1] (homebrew.mxcl.postgresql): S
ervice only ran for 9 seconds. Pushing respawn out by 1 seconds.
Jul 14 17:44:45 localhost com.apple.xpc.launchd[1] (homebrew.mxcl.postgresql): S
ervice only ran for 0 seconds. Pushing respawn out by 10 seconds.

Après cela, le dernier message se répète indéfiniment.

Voici mon fichier .plist. La raison pour laquelle sudo -u _postgres est que postgres ne peut pas être exécuté en tant que Root, ce que les démons de lancement font par défaut.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>homebrew.mxcl.postgresql</string>
  <key>ProgramArguments</key>
  <array>
    <string>sudo</string>
    <string>-u</string>
    <string>_postgres</string>
    <string>/usr/local/bin/pg_ctl</string>
    <string>-D</string>
    <string>/usr/local/var/postgres</string>
    <string>start</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>UserName</key>
  <string>_postgres</string>
  <key>WorkingDirectory</key>
  <string>/usr/local/var/postgres</string>
  <key>StandardErrorPath</key>
  <string>/usr/local/var/postgres/server.log</string>
</dict>
</plist>

PLUS D'INFORMATIONS : Le chargement manuel de la tâche via ssh donne le message d'erreur non grammatical "Could not find domain for". Le charger sur la machine elle-même donne "/Library/LaunchDaemons/homebrew.mxcl.postgresql.plist : File exists".

Qu'est-ce qui peut bien se passer ici ?

1voto

LCC Points 672

Laissez de côté le sudo , -u y _postgres sur ProgramArguments . launchd s'en occupe avec la fonction UserName llave.

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