Wie verwende ich nicht "ältere" launchctl-Befehle zum Laden und Entladen von Plists?

13

Ich habe einige plist-Dateien in ~/Library/LaunchAgents.

Ich benutze launchctl load -wund launchctl unload -wschalte diese seit Jahren gerne ein und aus. Allerdings merke ich das jetzt loadund unloadsteige in den "Legacy" -Bereich der Manpage ab. Nennen wir einen von ihnen com.example.service.plist.

Wenn ich jedoch versuche, über launchctl enable "gui/$(id -u)/com.example.service"und mit diesen Plists zu interagieren launchctl disable "gui/$(id -u)/com.example.service", scheinen andere launchd-Befehle den Erfolg zu melden - launchctl print "gui/$(id -u)"zeigt mir beispielsweise vollständig deaktivierte Flags an, die dem von mir festgelegten Status entsprechen -, werden die Dienste tatsächlich nicht gestartet und gestoppt oder hören und unlisten auf ihren Häfen.

Gibt es einen Schritt, den ich vermisse? Im Moment bleibe ich bei loadund unloadmöchte aber die nicht veraltete Art des Umgangs mit diesem Zeug lernen, bevor Apple irgendwann die Tür auf die alte / schlechte Art zuschlägt ...

Glyph
quelle
Das Erbe bedeutet, dass eine Änderung im Gange ist - Sie können das Laden und Entladen nach Herzenslust auch ab 10.11 verwenden. Ich
gehe davon aus, dass
1
Ich denke, es gibt vielleicht noch keine Antwort darauf, aber es sieht aus wie enableund disablesoll ersetzen loadund unload. Ich kann sie einfach nicht zum Arbeiten bringen, wie ich es erwarte.
Glyphe
1
Haben Sie versucht , folgende launchctl enablemit launchctl kickstart?
Ich habe keine, soll aber nicht launchctl kickstartnur eine Aktivierung für den betreffenden Job ausstellen? Ich verwende launchd speziell, weil ich die Aktivierung nur bei Bedarf möchte.
Glyph
2
Dies scheint zu
TJ Luoma

Antworten:

6

Ich habe den Twitter-Benutzer @launchderp gefragt :

@launchderp Ist das launchctl loadEntladen immer noch sicher, zumindest bis zum 10.12 oder was kommt als nächstes?

cf Wie verwende ich nicht "ältere" launchctl-Befehle zum Laden und Entladen von Plists?

Und @launchderp antwortete

@tjluoma Ja, sie sind immer noch sicher. Zu viele Jahre Abhängigkeiten, um sie zu lösen.

Obwohl dies nicht wie eine offizielle Äußerung von Apple erscheint, glaube ich, dass diese Person jemand ist, der aktiv an launchdApple arbeitet und dem vertraut, was sie sagt. YMMV.

Moral der Geschichte: Wenn das Laden / Entladen für dich funktioniert, benutze sie weiter :-)

TJ Luoma
quelle
2
Nicht als "akzeptiert" markieren, weil es die Frage nicht ganz anspricht enableund disableaber positiv bewertet, weil ich die Informationen immer noch schätze :).
Glyphe
1

Der Artikel von TJ Luoma ist sehr hilfreich. Schritte zum Starten des Daemons:

  1. Speichern Sie Ihre plist-Datei /Library/LaunchDaemons/wie gewohnt. Nehmen wir an, die Datei ist com.example.mysrv.plistund das Label in plist ist com.example.mysrv.
  2. sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist. Beachten Sie, dass der Pfad relativ (zu $PWD) oder absolut sein kann.
  3. Überprüfen Sie den Service mit sudo launchctl print system/com.example.mysrv. Es sollte "Laufen" heißen.

Launch Agents sollten ähnlich sein. Einschränkung: Ich habe keine Ahnung, wie ein Dienst angehalten werden kann, ohne ihn zu entladen bootout.

Franklin Yu
quelle