Startunterschied zwischen Laden und Starten, Entladen und Stoppen


22

Ich habe die launchctl-Manpage durchgelesen und ein paar Fragen zur Funktionsweise gestellt:

  • Was ist der Unterschied zwischen Laden und Starten, Entladen und Stoppen?
  • Wo finde ich die Jobbezeichnung für einen Daemon, ist sie in der plist-Datei enthalten?

Antworten:


14

TL; DR

  • Normalerweise möchten Sie launchctl load -wund verwenden launchctl unload -w.
  • startund stopsind normalerweise zum Testen oder Debuggen eines Jobs reserviert.

Einzelheiten

  • launchctl start <label>: Startet den Job. Dies ist normalerweise nur zum Testen oder Debuggen eines bestimmten Jobs reserviert.
  • launchctl stop <label>: Stoppt den Job. Im Gegensatz zu start wird der Job möglicherweise sofort neu gestartet, wenn der Job so konfiguriert ist, dass er weiterhin ausgeführt wird.

  • launchctl remove <label>: Entfernt den Job von launchd, aber asynchron. Es wird nicht darauf gewartet, dass der Job tatsächlich gestoppt wird, bevor er zurückkehrt. In diesem Fall gibt es keine Fehlerbehandlung.

  • launchctl load <path>: Lädt und startet den Job, solange der Job nicht "deaktiviert" ist.
  • launchctl unload <path>: Stoppt und entlädt den Job. Der Job wird beim nächsten Anmelden / Neustart immer noch neu gestartet.

  • launchctl load -w <path>: Lädt und startet den Job und markiert ihn gleichzeitig als "nicht deaktiviert". Der Job wird beim nächsten Anmelden / Neustart neu gestartet.
  • launchctl unload -w <path>: Stoppt und entlädt den Job und deaktiviert ihn . Der Job wird beim nächsten Anmelden / Neustart NICHT neu gestartet.

Wo finde ich die Jobbezeichnung für einen Daemon, ist sie in der plist-Datei enthalten?

Ja, es befindet sich in der plist-Datei und entspricht normalerweise dem Dateinamen der plist-Datei.


Danke, hat mir ein paar Stunden gespart 👏🏻
Dana Woodman

7

Das Laden und Entladen weist launchd an, die Konfigurationsdatei zu laden. Ob und unter welchen Bedingungen das Programm ausgeführt wird, hängt von der plist-Datei ab. Ein Job, der gerade nicht läuft, kann mit gestartet launchctl start ...und mit gestoppt werden launchctl stop ....

Das Label für den Job wird durch den Label-Schlüssel definiert, und der Name der Plist sollte auch das Job-Label sein, gefolgt von der Plist-Erweiterung.


6
Wie wird der Faktor in diese entfernt? Inwiefern unterscheidet es sich vom Entladen?
Chrisortman

@chrisortman remove entspricht dem Entladen, wartet jedoch nicht darauf, dass der Job zuerst beendet wird. Es wird nur sofort zurückgegeben, ohne zu prüfen, ob Fehler aufgetreten sind.
Ryan McGeary
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.