Ejecutando Postgres como Launch Daemon

0

Estoy trabajando en la configuración de un servidor psql y, por lo tanto, me gustaría que Postgres se ejecute siempre que la computadora esté encendida, independientemente de si la he iniciado sesión. (La máquina ejecuta OS X Yosemite). Configuré un demonio de inicio para hacer esto, pero no funciona. syslog da los siguientes mensajes de error:

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.

Después de eso, el último mensaje se repite indefinidamente.

Aquí está mi archivo .plist. El motivo de sudo -u _postgres es que postgres no se puede ejecutar como root, lo que los demonios de lanzamiento ejecutan de forma predeterminada.

<?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>

MÁS INFORMACIÓN: Al cargar el trabajo manualmente a través de ssh aparece el mensaje de error no gramatical "No se pudo encontrar el dominio para". Al cargarlo en la máquina, aparece "/Library/LaunchDaemons/homebrew.mxcl.postgresql.plist: el archivo existe".

¿Qué podría salir mal aquí?

    
pregunta jaia 15.07.2015 - 07:20

1 respuesta

1

Deje fuera sudo , -u y _postgres en ProgramArguments . launchd se encarga de esto con la clave UserName .

    
respondido por el LCC 15.07.2015 - 10:59

Lea otras preguntas en las etiquetas