15 votes

Quel est le problème avec ma configuration launchctl ?

J'essaie d'exécuter automatiquement BarbeMalade à la connexion.

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>

Quand je cours launchctl com.sickbeard.sickbeard.plist il me donne le message :

launchctl load com.sickbeard.sickbeard.plist launchctl : no plist was renvoyé pour : com.sickbeard.sickbeard.plist launchctl : aucune liste de diffusion n'a été trouvée renvoyé pour : com.sickbeard.sickbeard.plist rien trouvé à charger

37voto

binarybob Points 9292

Je suppose que les chemins d'accès au script et à ses paramètres sont valides, sinon vous verriez très probablement des erreurs dans la Console à la place.

La dernière fois que j'ai vu cette erreur, c'était parce qu'il y avait des caractères parasites dans la plist, par exemple des espaces supplémentaires, ce qui provoquait des erreurs de syntaxe et empêchait le chargement. Si vous exécutez plutil -lint sur votre plist, qui vérifiera la syntaxe pour vous et vous rapportera aussi facilement la ligne sur laquelle l'erreur s'est produite.

plutil -lint com.sickbeard.sickbeard.plist

Si cela n'aide pas, le (OSX) Comment démarrer BarbeMalade à la connexion ou au démarrage sur OSX Le fil de discussion sur les forums de sickbeard a un plist légèrement différent du vôtre (sickbeard fonctionnant à partir de /usr/local à l'opposé de /Applications - donc cela pourrait être une question de permissions) et aussi des personnes avec apparemment les même problème comme vous

2voto

Eddie Gems Points 156

Comme je l'ai découvert à la dure, vous devez exécuter la commande en utilisant sudo ainsi que le chemin d'accès complet de la .plist comme suit (dans votre cas) :

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

Le chemin d'accès peut être différent pour vous, mais vous devez localiser le fichier pour connaître son emplacement et le passer comme je l'ai cité à la fonction launchctl comando.

2voto

Blank Points 9

Le message nothing found to load signifie parfois que la configuration est remplacée par une autre configuration. Vous forcez le chargement en utilisant l'option "-w" lors de l'utilisation de launchctl load or unload .

Si vous devez forcer le chargement ou le déchargement d'un fichier plist, cela signifie que vous avez une configuration qui remplace le plist. Cette surcharge est créée lorsque vous utilisez le "-w", sinon aucune surcharge ne sera ajoutée au fichier overrides. Pour éviter ce cas, éditez le fichier ci-dessous, cherchez l'étiquette du job que vous voulez supprimer la surcharge, supprimez les lignes nécessaires :

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

Par exemple, supprimez cette ligne

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

alors vous pourriez utiliser : launchctl load or unload /Library/LaunchDaemons/com.mydomain.myjob.plist sans avoir besoin de "-w" ou "-F", vous ne devriez pas avoir le message nothing found to load

1voto

soxman Points 1899

Vous pouvez ajouter le flag -F pour forcer launchctl pour charger le .plist. Vérifiez également que le fichier .plist se trouve dans les chemins suivants launchctl recherches. Si votre .plist se trouve ailleurs, vous pouvez également ajouter l'option -D et spécifier le domaine. De la page de manuel :

-Domaine D
Recherchez les fichiers plist(5) se terminant par *.plist dans le domaine indiqué. Les domaines valides incluent "système", "local", "réseau" et "tous". Lorsqu'un type de session est fourni, un domaine supplémentaire appelé "user" peut être utilisé. Par exemple, sans type de session, "-D system" chargerait les fichiers de la liste de propriétés de /System/Library/LaunchDaemons. Avec un type de session passé, il chargerait à partir de /System/Library/LaunchAgents.

Assurez-vous d'examiner minutieusement toutes les informations contenues dans la page de manuel - vous pouvez vraiment gâcher des choses si votre appel n'est pas correctement configuré.

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