Cosa c'è di sbagliato nella mia configurazione di launchctl?

15

Sto tentando di eseguire automaticamente SickBeard all'accesso

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>

Quando eseguo launchctl com.sickbeard.sickbeard.plist mi da il messaggio:

launchctl load com.sickbeard.sickbeard.plist launchctl: no plist was returned for: com.sickbeard.sickbeard.plist launchctl: no plist was returned for: com.sickbeard.sickbeard.plist nothing found to load

    
posta Joao Costa 28.03.2012 - 07:04
fonte

4 risposte

35

Sto assumendo che i percorsi dello script python e i suoi parametri siano validi, altrimenti probabilmente vedresti degli errori nella Console.

L'ultima volta che ho visto quell'errore era perché c'erano dei caratteri spuri nel plist, ad es. spazi aggiuntivi, causando errori di sintassi e quindi il mancato caricamento. Se esegui plutil -lint sul tuo plist, questo controllerà la sintassi per te e restituirà anche facilmente la riga su cui si è verificato l'errore.

plutil -lint com.sickbeard.sickbeard.plist

Se ciò non aiuta, (OSX) Come avviare SickBeard all'accesso o all'avvio su OSX il thread nei forum di sickbeard ha un plist leggermente diverso dal tuo (malato che gira da /usr/local invece che da /Applications - quindi potrebbe essere una cosa delle autorizzazioni) e anche alcune persone con apparentemente il stesso problema come te

    
risposta data 28.03.2012 - 08:17
fonte
2

Come ho scoperto nel modo più duro, devi eseguire il comando utilizzando sudo e passare il percorso completo del file .plist come segue (nel tuo caso):

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

Il percorso potrebbe essere diverso per te, ma devi individuare il file per scoprire la sua posizione e passarlo come ho citato al comando launchctl .

    
risposta data 01.10.2012 - 20:15
fonte
2

Il messaggio nothing found to load a volte significa che la configurazione è sovrascritta da un'altra configurazione. Forzi il caricamento utilizzando l'opzione "-w" quando utilizzi launchctl load or unload .

Se devi forzare il caricamento o lo scaricamento di un file plist, significa che hai una configurazione che sovrascrive il plist. Questa sovrascrittura viene creata quando si utilizza il "-w" altrimenti non verrà aggiunta alcuna sostituzione al file di sostituzioni. Per evitare questo caso, modifica il file qui sotto, cerca nell'etichetta del lavoro che desideri rimuovere l'override, elimina le righe necessarie:

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

Ad esempio, elimina questa riga

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

quindi potresti usare: launchctl load or unload /Library/LaunchDaemons/com.mydomain.myjob.plist senza la necessità di "-w" o "-F", non dovresti avere il messaggio nothing found to load

    
risposta data 22.04.2013 - 11:10
fonte
1

Potresti voler aggiungere il flag -F per forzare launchctl a caricare il file .plist. Inoltre, assicurati che .plist sia nelle ricerche launchctl dei percorsi. Se il tuo .plist è da qualche altra parte, puoi anche aggiungere il flag -D e specificare il dominio. Dalla pagina di manuale:

-D domain
Look for plist(5) files ending in *.plist in the domain given. Valid domains include "system," "local," "network" and "all." When providing a session type, an additional domain is available for use called "user." For example, without a session type given, "-D system" would load from property list files from /System/Library/LaunchDaemons. With a session type passed, it would load from /System/Library/LaunchAgents.

Assicurati di esaminare attentamente tutte le informazioni contenute nella manpage: puoi davvero distruggere le cose se la tua chiamata non è configurata correttamente.

    
risposta data 28.03.2012 - 07:46
fonte

Leggi altre domande sui tag