Quali sono esattamente questi "domini" e "obiettivi di servizio" e come li associo ai plists per essere utilizzati da launchd?
OS X 10.10 introduce una nuova API launchctl
per la gestione di LaunchDaemon e il lancio di plists. I messaggi di log e le pagine man suggeriscono che le chiavi come KeepAlive
e RunAtLoad
non devono più essere utilizzate e che sottocomandano enable
; %codice%; e bootstrap
deve essere usato preferibilmente a kickstart
e load -w
Tuttavia non è chiaro dalle pagine man come associare un plist al "dominio" e al "target di servizio" di cui parla e senza il quale questi comandi non possono essere usati con i plists esistenti che apparentemente erano abbastanza sufficienti per OS X 10.9
Ad esempio [aggiornato]: Un plist di base che stiamo cercando di "lanciare"; apparentemente avviato nel dominio "sistema" ma successivamente non riconosciuto in "sistema"
# pwd
/Library/LaunchDaemons
# cat com.iainhouston.django.plist
<?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.iainhouston.django</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/virtualenvs/django.iainhouston.com/bin/gunicorn</string>
<string>--bind=127.0.0.1:49202</string>
<string>--workers=2</string>
<string>superlists.wsgi:application</string>
</array>
<key>Disabled</key><false/>
</dict>
</plist>
# launchctl bootstrap system com.iainhouston.django.plist
/Library/LaunchDaemons/com.iainhouston.django.plist: Service is disabled
# launchctl enable system/com.iainhouston.django.plist
# launchctl kickstart system/com.iainhouston.django.plist
Could not find service "com.iainhouston.django.plist" in domain for system
Motivazione
Il log di sistema registra che unload -w
si lamenta quando usiamo launchctl -w load ...
con KeepAlive
che Questo servizio è definito per essere costantemente in esecuzione ed è intrinsecamente inefficiente. quindi siamo motivati ad usare il nuova interfaccia.
Non solo, abbiamo problemi significativi con un utilizzo eccessivo del processore che vogliamo controllare fornendo le parole chiave su richiesta appropriate, quindi, di nuovo, siamo motivati a capire come interagire con il nuovo launchd .... non è facile con i documenti come stanno!