3 votos

No se reconoce LaunchDaemon

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

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

Sin embargo, esto no parece funcionar. He mirado dentro del 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 estar bien (sin embargo, no tengo ningún conocimiento real de cómo debería ser):

<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, así que no hay problemas ahí. Simplemente parece que el demonio de lanzamiento se salta este comando.

¿Alguna idea sobre cómo solucionar esto?

0 votos

¿Si cambias el StandardOutPath y el StandardErrorPath a archivos rel muestran algo?

0 votos

No estoy muy seguro de lo que quieres decir con "mostrar nada". De todas formas he mirado otros archivos plist y tienen los mismos valores, así que no creo que ese sea el problema.

0 votos

"Sin embargo, esto no funciona" ¿Qué obtienes en cambio? Hace launchctl ¿sale como si todo fuera bien, o tiene un error? ¿Tiene launchctl list ¿muestra el demonio?

5voto

Greg Hurlman Puntos 10944

Pruebe 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

Entonces reinicia.

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

1 votos

¿por qué reiniciar? a sudo launchctl unload -w /Library/LaunchDaemons/org.apache.couchdb.plist && sudo launchctl load -w /Library/LaunchDaemons/org.apache.couchdb.plist lo hará bien

0 votos

Me daba mucha pereza :P

3voto

Nate Puntos 220

No estoy específicamente familiarizado con CouchDB, pero veo un par de problemas potenciales con su archivo .plist: en primer lugar, el valor de HOME que se está estableciendo es extraño - debería ser una ruta de carpeta específica (es decir, dondequiera que usted ponga la carpeta de inicio del usuario couchdb), no ~ . En segundo lugar, sospecho que también necesitas establecer la variable de entorno PATH para que CouchDB pueda encontrar los otros programas opcionales que has instalado. Así que esa sección del .plist debería ser algo 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 tenga que ajustarlos a donde está la casa de su usuario de CouchDB y/o donde están las carpetas de los binarios de sus complementos). Para cargar el archivo .plist modificado, utilice:

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 donde buscar más información sobre lo que está fallando: primero, echa un vistazo al registro del sistema (/var/log/system.log), ya sea con la utilidad de la consola o con una herramienta de línea de comandos; tendrá cualquier error que launchd haya encontrado mientras intentaba procesar el archivo .plist o iniciar CouchDB. En segundo lugar, sigue la sugerencia de Mark sobre cambiar StandardOutPath y StandardErrorPath a archivos reales, y mira lo que aparece allí. Esto no es necesario si todo está configurado correctamente, pero puede ser muy útil para averiguar lo que está mal cuando hay un problema (y puedes cambiarlos de nuevo a /dev/null después de que el problema se haya resuelto).

0 votos

+1 por tu detallado planteamiento, sin embargo prefiero no recurrir a hackear el archivo plist (asumo que el distribuido por MacPorts es el correcto, y se sobrescribirá de nuevo cuando lo actualice). Resulta que era un simple problema de derechos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X