¿Qué pasa con mi configuración de launchctl?

15

Estoy intentando ejecutar automáticamente SickBeard al iniciar sesión

python /Applications/Sick-Beard/Sickbeard.py

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.sickbeard.sickbeard</string>
  <key>ProgramArguments</key>
  <array>
       <string>/usr/bin/python</string>
       <string>/Applications/Sick-Beard/SickBeard.py</string>
       <string>-q</string>
       <string>-d</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Cuando ejecuto launchctl com.sickbeard.sickbeard.plist me da el mensaje:

  

launchctl load com.sickbeard.sickbeard.plist launchctl: no plist was   devuelto para: com.sickbeard.sickbeard.plist launchctl: no plist was   devuelto para: com.sickbeard.sickbeard.plist no se encontró nada para cargar

    
pregunta Joao Costa 28.03.2012 - 07:04

4 respuestas

35

Supongo que las rutas a la secuencia de comandos de Python y sus parámetros son válidos, de lo contrario, es probable que estés viendo errores en la Consola.

La última vez que vi ese error fue porque había caracteres espurios en la lista, por ejemplo. espacios adicionales, causando errores de sintaxis y, por lo tanto, fallando en la carga. Si ejecuta plutil -lint en su lista, esto comprobará la sintaxis y también informará fácilmente la línea en la que se produjo el error.

plutil -lint com.sickbeard.sickbeard.plist

Si eso no ayuda, (OSX) Cómo iniciar SickBeard en el inicio de sesión o el arranque El hilo de OSX en los foros de barras enfermas tiene una relación ligeramente diferente a la tuya (barra de enfermedad que se ejecuta desde /usr/local en lugar de /Applications , por lo que podría ser una cuestión de permisos) y también algunas personas con aparentemente el mismo problema como usted

    
respondido por el binarybob 28.03.2012 - 08:17
2

Como descubrí el camino difícil, debe ejecutar el comando usando sudo y pasar la ruta completa del archivo .plist de la siguiente manera (en su caso):

sudo launchctl load /Library/LaunchDaemons/com.sickbeard.sickbeard.plist

La ruta puede ser diferente para usted, pero debe ubicar el archivo para averiguar su ubicación y pasarlo como mencioné al comando launchctl .

    
respondido por el Johnny 01.10.2012 - 20:15
2

El mensaje nothing found to load significa que a veces la configuración está anulada por otra configuración. Para forzar la carga, utilice la opción "-w" cuando use launchctl load or unload .

Si tiene que forzar la carga o descarga de un archivo plist, significa que tiene una configuración que anula el plist. Esta anulación se crea cuando utiliza "-w", de lo contrario, no se agregará ninguna anulación al archivo de anulaciones. Para evitar este caso, edite el archivo a continuación, busque la etiqueta de trabajo que desea eliminar y anule las líneas necesarias:

  

pico /var/db/launchd.db/com.apple.launchd/overrides.plist

Por ejemplo, eliminar esta línea

<key>com.mydomain.myjob</key>
<dict>
        <key>Disabled</key>
        <true/>
</dict>

luego podría usar: launchctl load or unload /Library/LaunchDaemons/com.mydomain.myjob.plist sin la necesidad de "-w" o "-F", no debería tener el mensaje nothing found to load

    
respondido por el Sylvain Rayé 22.04.2013 - 11:10
1

Es posible que desee agregar el indicador -F para forzar a launchctl a cargar el .plist. Además, asegúrese de que el .plist esté en las rutas launchctl búsquedas. Si su .plist está en otra parte, también puede agregar la marca -D y especificar el dominio. De la página del manual:

  

-D dominio
                         Busque archivos plist (5) que terminen en * .plist en el dominio dado. Los dominios válidos incluyen "sistema", "local", "red" y "todos". Cuando se proporciona un tipo de sesión, un dominio adicional está disponible para su uso llamado "usuario". Por ejemplo, sin un tipo de sesión dado, "-D sistema" se cargaría desde los archivos de la lista de propiedades de / System / Library / LaunchDaemons. Con un tipo de sesión aprobado, se cargaría desde / System / Library / LaunchAgents.

Asegúrese de revisar minuciosamente toda la información contenida en la página del manual; realmente puede arruinar las cosas si su llamada no está configurada correctamente.

    
respondido por el soxman 28.03.2012 - 07:46

Lea otras preguntas en las etiquetas