Czytałem stronę manuala launchctl i mam kilka pytań dotyczących jej funkcjonowania:
- Jaka jest różnica między ładowaniem a uruchamianiem, rozładowywaniem i zatrzymywaniem?
- Gdzie znajdę etykietę zadania dla demona, czy znajduje się ona w pliku plist?
launchctl load -w
i launchctl unload -w
.start
i stop
zwykle są zarezerwowane do testowania lub debugowania zadania.launchctl start <label>
: Rozpoczyna pracę. Zazwyczaj jest to zarezerwowane tylko do testowania lub debugowania określonego zadania.launchctl stop <label>
: Zatrzymuje pracę. Przeciwnie do startu i możliwe jest, że zadanie zostanie natychmiast ponownie uruchomione, jeśli zadanie zostanie skonfigurowane do działania.launchctl remove <label>
: Usuwa zadanie z launchd
, ale asynchronicznie. Nie będzie czekać na zakończenie zadania przed jego powrotem, więc nie będzie obsługiwał błędów w tym przypadku.launchctl load <path>
: Ładuje i uruchamia zadanie, o ile zadanie nie jest „wyłączone”.launchctl unload <path>
: Zatrzymuje i zwalnia zadanie. Zadanie nadal uruchomi się ponownie przy następnym logowaniu / ponownym uruchomieniu.launchctl load -w <path>
: Ładuje i uruchamia zadanie, jednocześnie oznaczając je jako „nie wyłączone”. Zadanie uruchomi się ponownie przy następnym logowaniu / ponownym uruchomieniu.launchctl unload -w <path>
: Zatrzymuje i zwalnia i wyłącza zadanie. Zadanie NIE uruchomi się ponownie przy następnym logowaniu / ponownym uruchomieniu.Gdzie znajdę etykietę zadania dla demona, czy znajduje się ona w pliku plist?
Tak, znajduje się w pliku plist i zazwyczaj odpowiada nazwie pliku plist.
Ładowanie i rozładowywanie informuje uruchomionego o załadowaniu pliku konfiguracyjnego. Określa, czy uruchamia program i na jakich warunkach określa plik plist. Zadanie, które obecnie nie jest uruchomione, można uruchomić
launchctl start ...
i zatrzymaćlaunchctl stop ...
.Etykieta zadania jest zdefiniowana przez klucz etykiety, a nazwa listy zadań powinna również być etykietą zadania, po której następuje rozszerzenie listy zadań.
źródło