LaunchDaemon no reconocido

3

He instalado CouchDB a través de MacPorts. Ahora quiero iniciarlo cuando arranque mi Mac, así que ejecuté las instrucciones proporcionadas en el proceso de instalación:

sudo launchctl load -w /Library/LaunchDaemons/org.apache.couchdb.plist

Sin embargo, esto no parece funcionar. He buscado en el directorio LaunchDaemons y el archivo plist está allí (como un enlace simbólico):

lrwxr-xr-x  1 root  wheel   57 18 aug 10:11 org.apache.couchdb.plist -> /opt/local/Library/LaunchDaemons/org.apache.couchdb.plist

El contenido del archivo plist real parece correcto (sin embargo, no tengo un conocimiento real de cómo debería verse):

<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>org.apache.couchdb</string>
    <key>EnvironmentVariables</key>
    <dict>
      <key>HOME</key>
      <string>~</string>


    </dict>
    <key>ProgramArguments</key>
    <array>
      <string>/opt/local/bin/couchdb</string>
    </array>
    <key>UserName</key>
    <string>couchdb</string>
    <key>StandardOutPath</key>
    <string>/dev/null</string>
    <key>StandardErrorPath</key>
    <string>/dev/null</string>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
  </dict>
</plist>

Cuando ejecuto /opt/local/bin/couchdb manualmente, el proceso se crea, por lo que no hay problemas. Parece que el daemon de inicio omite este comando.

¿Alguna idea sobre cómo solucionar esto?

    
pregunta Peter Kruithof 26.08.2010 - 09:57

2 respuestas

5

Intente lo siguiente ( comando de una línea ):

sudo chown -R couchdb:couchdb /opt/local/var/lib/couchdb/ /opt/local/var/log/couchdb/ /opt/local/etc/couchdb/ /opt/local/var/run/couchdb

Luego reinicia.

Si no funciona, ¿qué versión de MacPorts y CouchDB tienes?

    
respondido por el Studer 26.08.2010 - 21:00
3

No estoy específicamente familiarizado con CouchDB, pero veo un par de problemas potenciales con su archivo .plist: primero, el valor de INICIO que se establece es extraño, debería ser una ruta de carpeta específica (es decir, donde sea que coloque el carpeta de inicio del usuario couchdb), no ~ . En segundo lugar, sospecho que también debe configurar la variable de entorno PATH para que CouchDB pueda encontrar los otros programas opcionales que ha instalado. Así que esa sección de la lista debería verse así:

<key>EnvironmentVariables</key>
<dict>
    <key>HOME</key>
    <string>/usr/local/var/lib/couchdb</string>
    <key>PATH</key>
    <string>/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin</string>
</dict>

(Nota: los valores anteriores son suposiciones basadas en un poco de búsqueda en Google: es posible que debas ajustarlos a la ubicación de la casa de tu usuario de CouchDB y / o al lugar donde se encuentran las carpetas de archivos binarios adicionales). archivo, usar:

sudo launchctl unload /Library/LaunchDaemons/org.apache.couchdb.plist
sudo launchctl load /Library/LaunchDaemons/org.apache.couchdb.plist

Si eso no resuelve el problema, hay un par de lugares para buscar más información sobre lo que está mal: primero, consulte el registro del sistema (/var/log/system.log), ya sea con la utilidad de consola o una herramienta de línea de comandos; tendrá cualquier error que haya ejecutado launchd al intentar procesar el archivo .plist o iniciar CouchDB. En segundo lugar, siga la sugerencia de Mark acerca de cambiar StandardOutPath y StandardErrorPath a archivos reales, y observe lo que aparece allí. Esto no es necesario si todo está configurado correctamente, pero puede ser muy útil para descubrir qué es lo que está mal cuando hay un problema (y puede volver a cambiarlo a / dev / null una vez que se haya resuelto el problema).

    
respondido por el Gordon Davisson 26.08.2010 - 21:08

Lea otras preguntas en las etiquetas