Jak korzystać z innych niż „starsze” komendy launchctl, aby ładować i zwalniać piny?

14

Mam kilka plików Plist w ~/Library/LaunchAgents.

Z radością korzystam launchctl load -wi launchctl unload -wwłączam je i wyłączam od lat. Zauważyłem to jednak teraz loadi jestem unloadprzeniesiony do sekcji „starszej” strony podręcznika. Zadzwońmy do jednego z nich com.example.service.plist.

Jednak gdy próbuję wchodzić w interakcje z tymi listami za pomocą launchctl enable "gui/$(id -u)/com.example.service"i launchctl disable "gui/$(id -u)/com.example.service", inne uruchomione polecenia wydają się informować o sukcesie - na przykład launchctl print "gui/$(id -u)"całkowicie pokazuje mi wyłączone flagi odpowiadające ustawionemu przeze mnie stanowi - usługi faktycznie nie uruchamiają się i nie zatrzymują lub słuchaj i nie słuchaj na swoich portach.

Czy brakuje mi jakiegoś kroku? W tej chwili jestem trzyma się loadi unloadale chciałbym nauczyć się non-przestarzałej sposób interakcji z tych rzeczy przed Jabłko ostatecznie zatrzaskuje drzwi na starym / zły sposób ...

Glif
źródło
Dziedzictwo oznacza, że ​​zmiana już się rozpoczęła - nadal możesz ładować i rozładowywać zawartość swojego serca w wersji 10.11 i niższej.
Podejrzewam,
1
Chyba nie tylko nie może być odpowiedzią na to jeszcze, ale na pewno wygląda jak enablei disableprzeznaczone są do zastąpienia loadi unload. Po prostu nie mogę zmusić ich do pracy zgodnie z oczekiwaniami.
Glyph
1
Czy próbowałeś po launchctl enablez launchctl kickstart?
Nie mam, ale czy nie launchctl kickstartpowinienem po prostu aktywować danego zadania? Korzystam z uruchomionego programu, ponieważ chcę aktywacji na żądanie.
Glyph
2
To jak wygląda to może pomóc: babodee.wordpress.com/2016/04/09/launchctl-2-0-syntax
TJ Luoma

Odpowiedzi:

6

Zapytałem użytkownika Twittera @launchderp :

@launchderp Czy launchctl loadi rozładunek jest nadal bezpieczny w użyciu, przynajmniej do 10.12 lub cokolwiek innego?

cf Jak używać nie „starszych” poleceń launchctl do ładowania i zwalniania list odtwarzania?

I @launchderp odpowiedział

@tjluoma Tak, nadal są bezpieczne. Zbyt wiele lat zależności, aby je przełamać.

Chociaż może to nie wydawać się oficjalnym oświadczeniem Apple, uważam, że ta osoba jest kimś, kto aktywnie pracuje launchddla Apple i ufam temu, co mówią. YMMV.

Morał tej historii: Jeśli ładowanie / rozładowywanie działa dla Ciebie, używaj ich dalej :-)

TJ Luoma
źródło
2
Nie oznakowanie jako „akceptowane”, ponieważ nie dość odpowiedzi na pytanie o enablea disablejednak upvoted bo nadal doceniają informacje :).
Glyph
1

Artykuł, do którego odnosi się TJ Luoma, jest bardzo pomocny. Kroki uruchamiania demona:

  1. Zapisz plik plist w /Library/LaunchDaemons/zwykły sposób. Powiedzmy, że plik jest com.example.mysrv.plist, a etykieta w plist to com.example.mysrv.
  2. sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist. Zauważ, że ścieżka może być względna (do $PWD) lub bezwzględna.
  3. Sprawdź usługę za pomocą sudo launchctl print system/com.example.mysrv. Powinien powiedzieć „bieganie”.

Agenci uruchomieniowi powinni być podobni. Zastrzeżenie: Nie mam pojęcia, jak zatrzymać usługę bez jej rozładowania bootout.

Franklin Yu
źródło