Non riesco a pianificare un lancio periodico con launchctl
/ launchd
su OS X (Leopard). Fondamentalmente, non riesco a trovare un elenco dettagliato di istruzioni sul Web e l'approccio intuitivo non funziona.
Il sync.plist
file:
<?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>net.madrat.utils.sync</string>
<key>Program</key>
<string>rsync</string>
<key>ProgramArguments</key>
<array>
<string>-ar</string>
<string>/path/to/folder/</string>
<string>/path/to/backup/</string>
</array>
<key>StartInterval</key>
<integer>7200</integer>
</dict>
</plist>
Ho inserito questo script nel percorso ~/Library/LaunchAgents
.
Successivamente, ho registrato lo script utilizzando
launchctl load ~/Library/LaunchAgents/sync.plist
Alla fine, per provare che funziona, ho iniziato il lavoro:
launchctl start net.madrat.utils.sync
- Non è successo niente. L'esecuzione manuale del rsync
comando nel terminale produce il risultato previsto.
Sono abbastanza sicuro che il lavoro sia stato registrato correttamente perché se provo ad avviare un lavoro inesistente, ricevo un messaggio di errore (che non ho ricevuto nel comando sopra).
Che cosa ho fatto di sbagliato?
launchctl list
ha visualizzato 1, ma solo dopo aver avviato l'agente manualmente utilizzandolaunchctl start
.