2013-04-19 13 views
5

Sto cercando di eseguire uno script su ogni minuto usando launchdsceneggiatura launchd in esecuzione ma la produzione è mancante (terminato con il codice: 2)

Ho aggiunto un nuovo plist lavoro launchd che assomiglia a questo

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Label</key> 
    <string>com.bpstatusboard.omnifocus</string> 
    <key>ProgramArguments</key> 
    <array> 
     <string>/Users/me/script.sh</string> 
    </array> 
    <key>StartInterval</key> 
    <integer>50</integer> 
</dict> 
</plist> 

Il lavoro viene eseguito con l'intervallo di tempo specificato e genera il seguente registro.

Apr 19 15:27:58 MacBook com.apple.launchd.peruser.501[153] (com.bpstatusboard.omnifocus[89895]): Exited with code: 2 

Problema: lo script deve aggiornare un file ma non lo è. Funziona correttamente quando lo avvio manualmente nel terminale. Non sono riuscito a trovare ulteriori dettagli sul codice di uscita : 2. Qualche idea su cosa ferma lo script per l'esecuzione corretta?

+0

Molto difficile da dire senza sapere nulla di ciò che è nella sceneggiatura; vedere [questa risposta precedente] (http://stackoverflow.com/questions/15990512/launchctl-minimal-working-example-with-python/15991343#15991343) per alcune opzioni di risoluzione dei problemi. –

risposta

2

terminato con il codice: 2

2 ENOENT No such file or directory. Un componente di un percorso specificato non esisteva oppure il nome del percorso era una stringa vuota.

Lo script non esiste in /Users/me/script.sh.

+1

In realtà questo è sbagliato. Lo script è stato trovato ed eseguito. Qualche comando nello script ha restituito il codice 2. Se launchd non avesse trovato lo script si sarebbe lamentato in questo modo: Job non riuscito ad exec (3) per una strana ragione: 2 – LCC