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?
Jason Rubenstein
quelle

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.

Ryan McGeary
quelle
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.

Jay Thompson
quelle
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