Mam kilka plików Plist w ~/Library/LaunchAgents
.
Z radością korzystam launchctl load -w
i launchctl unload -w
włączam je i wyłączam od lat. Zauważyłem to jednak teraz load
i jestem unload
przeniesiony 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ę load
i unload
ale 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 ...
enable
idisable
przeznaczone są do zastąpieniaload
iunload
. Po prostu nie mogę zmusić ich do pracy zgodnie z oczekiwaniami.launchctl enable
zlaunchctl kickstart
?launchctl kickstart
powinienem po prostu aktywować danego zadania? Korzystam z uruchomionego programu, ponieważ chcę aktywacji na żądanie.Odpowiedzi:
Zapytałem użytkownika Twittera @launchderp :
I @launchderp odpowiedział
Chociaż może to nie wydawać się oficjalnym oświadczeniem Apple, uważam, że ta osoba jest kimś, kto aktywnie pracuje
launchd
dla Apple i ufam temu, co mówią. YMMV.Morał tej historii: Jeśli ładowanie / rozładowywanie działa dla Ciebie, używaj ich dalej :-)
źródło
enable
adisable
jednak upvoted bo nadal doceniają informacje :).Artykuł, do którego odnosi się TJ Luoma, jest bardzo pomocny. Kroki uruchamiania demona:
/Library/LaunchDaemons/
zwykły sposób. Powiedzmy, że plik jestcom.example.mysrv.plist
, a etykieta w plist tocom.example.mysrv
.sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist
. Zauważ, że ścieżka może być względna (do$PWD
) lub bezwzględna.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
.źródło