Was genau sind diese "Domain-" und "Service-Ziele" und wie ordne ich sie Plisten zu, die von launchd verwendet werden?
OS X 10.10 führt eine neue launchctl
API zum Verwalten von LaunchDaemons und Starten von Plists ein. Protokollnachrichten und Manpages empfehlen, Schlüssel wie KeepAlive
und RunAtLoad
nicht mehr zu verwenden und Unterbefehle zu verwenden enable
. bootstrap
; und kickstart
sollten vor load -w
und verwendet werdenunload -w
Aus den Manpages geht jedoch nicht hervor, wie eine Plist mit der "Domäne" und dem "Dienstziel" verknüpft werden kann, von denen die Befehle bei vorhandenen Plists, die für OS X 10.9 anscheinend völlig ausreichend waren, nicht verwendet werden können
Zum Beispiel [aktualisiert]: Eine grundlegende Liste, die wir versuchen zu "starten"; scheinbar in "System" -Domäne gebootet, aber anschließend in "System" nicht erkannt
# 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
Motivation
Die System - Log - Einträge, launchctl -w load ...
beschwert sich, wenn wir verwenden KeepAlive
mit , RunAtLoad
dass dieser Service definiert ist , ständig zu laufen und ist von Natur aus ineffizient. deshalb sind wir motiviert, die neue schnittstelle zu nutzen.
Nicht nur das, wir haben erhebliche Probleme mit übermäßiger Prozessorauslastung, die wir durch die Bereitstellung der entsprechenden On-Demand-Schlüsselwörter kontrollieren möchten. Daher sind wir auch hier motiviert zu verstehen, wie mit dem neuen launchd umgegangen wird. Dies ist mit den Dokumenten nicht einfach wie sie stehen!
RunAtLoad
: "Dieser Schlüssel sollte vermieden werden, da spekulative Jobstarts sich nachteilig auf Systemstart- und Benutzeranmeldeszenarien auswirken." Es gibt jedoch keine Beispieljobtypen oder -vorschläge zur Verwendung. Sehr unbefriedigend.