Ich habe einige Plist-Dateien in ~/Library/LaunchAgents
.
launchctl load -w
Ich benutze und launchctl unload -w
schalte diese seit Jahren gerne ein und aus. Allerdings merke ich das jetzt load
und werde unload
in den Abschnitt "Legacy" der Manpage verbannt. Nennen wir einen von ihnen com.example.service.plist
.
Wenn ich jedoch versuche, mit diesen plists über launchctl enable "gui/$(id -u)/com.example.service"
und zu interagieren, scheinenlaunchctl disable "gui/$(id -u)/com.example.service"
andere launchd-Befehle Erfolg zu melden – zeigt mir zum Beispiel vollständig deaktivierte Flags, die dem von mir festgelegten Zustand entsprechen – die Dienste starten und stoppen nicht wirklich oder ihre Ports abhören und abhören.launchctl print "gui/$(id -u)"
Gibt es einen Schritt, den ich vermisse? Im Moment bleibe ich bei load
und unload
aber ich würde gerne die nicht veraltete Art und Weise lernen, mit diesem Zeug zu interagieren, bevor Apple schließlich die Tür auf dem alten/schlechten Weg zuschlägt ...
Ich habe den Twitter-Nutzer @launchderp gefragt :
@launchderp Sind
launchctl load
und entladen Sie noch sicher, zumindest bis 10.12 oder was auch immer als nächstes kommt?cf Wie verwende ich nicht-"legacy" launchctl-Befehle zum Laden und Entladen von Plists?
@tjluoma Ja, sie sind immer noch sicher. Zu viele Jahre Abhängigkeiten, um sie zu brechen.
Obwohl dies nicht wie eine offizielle Aussage von Apple erscheinen mag, glaube ich, dass diese Person jemand ist, der aktiv launchd
für Apple arbeitet, und vertraue dem, was sie sagt. YMMV.
Moral der Geschichte: Wenn das Laden/Entladen für Sie funktioniert, verwenden Sie sie weiter :-)
enable
aber disable
positiv bewertet, weil ich die Informationen immer noch schätze :).Der von TJ Luoma erwähnte Artikel ist sehr hilfreich. Schritte für Launch Daemon:
/Library/LaunchDaemons/
wie gewohnt in. Nehmen wir an, die Datei ist com.example.mysrv.plist
, und das Label in plist ist com.example.mysrv
.sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist
. Beachten Sie, dass der Pfad relativ (zu $PWD
) oder absolut sein kann.sudo launchctl print system/com.example.mysrv
. Es sollte "laufen" heißen.Launch Agents sollten ähnlich sein. Vorbehalt: Ich habe keine Ahnung, wie man einen Dienst anhält, ohne ihn durch zu entladen bootout
.
Fahrrad
Glyphe
enable
unddisable
soll undload
ersetzenunload
. Ich kann sie einfach nicht dazu bringen, so zu arbeiten, wie ich es erwarte.Benutzer11633
launchctl enable
mit zu folgenlaunchctl kickstart
?Glyphe
launchctl kickstart
soll aber nicht einfach eine Freischaltung für den betreffenden Job ausstellen? Ich verwende launchd speziell, weil ich eine reine On-Demand-Aktivierung möchte.TJ Luoma