Qu'est-ce que c'est exactement que ces "domain" et "service targets" et comment puis-je les associer à des plists à utiliser par launchd ?
OS X 10.10 introduit une nouvelle launchctl
API pour gérer les LaunchDaemons et les listes de lancement. Les messages de journal et les pages de manuel suggèrent que des clés comme KeepAlive
y RunAtLoad
ne doit plus être utilisé et que les sous-commandes enable
; bootstrap
; et kickstart
doit être utilisé de préférence à load -w
y unload -w
Cependant, les pages de manuel n'indiquent pas clairement comment associer une liste avec le "domaine" et le "service cible" dont elle parle et sans lesquels ces commandes ne peuvent pas être utilisées avec les listes existantes qui semblaient être suffisantes pour OS X 10.9.
Par exemple [mise à jour] : Une plist de base que nous essayons de "lancer" ; apparemment amorcée dans le domaine "système" mais ensuite non reconnue dans "système".
# 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
Le journal du système enregistre que launchctl -w load ...
se plaint lorsque nous utilisons KeepAlive
avec RunAtLoad
que Ce service est défini pour fonctionner en permanence et est intrinsèquement inefficace. Nous sommes donc motivés pour utiliser la nouvelle interface.
En plus de cela, nous avons des problèmes significatifs d'utilisation excessive du processeur que nous voulons contrôler en fournissant les mots-clés appropriés à la demande, donc, encore une fois, nous sommes motivés pour comprendre comment interagir avec le nouveau launchd ...., ce qui n'est pas facile avec les docs tels qu'ils sont !