2011-11-18 15 views
6

W systemie Windows można utworzyć aplikację, którą można zainstalować jako usługę. Ten typ aplikacji nosi nazwę Usługa systemu Windows. Jaki byłby odpowiednik usług na Mac OS X? W jaki sposób są wdrażane i gdzie zacząć się uczyć?Jak utworzyć usługę Windows dla Mac OS X?

Chciałbym utworzyć usługę do automatycznego wykonywania zadania, a także uruchamiania i zatrzymywania go na żądanie.

+0

Na Macu w jednym punkcie uruchomiono zmodyfikowane jądro bsd. Czy mają narzędzie podobne do crona, z którego możesz skorzystać? http: // benr75.com/pages/using_crontab_mac_os_x_unix_linux – Chris

+2

Rzeczywiście można użyć 'cron', ale jego użycie jest przestarzałe na rzecz' launchd'. –

+0

ok, czytałem launchd i wydaje się być właściwym rozwiązaniem. thx – willyMon

Odpowiedz

9

Musisz stać się przyjaciółmi z launchd. Musisz utworzyć launchd pliki konfiguracyjne, które są umieszczone w jednym z pięciu lokalizacjach:

  • ~/Library/LaunchAgents: każdego użytkownika agentów dostarczonych przez użytkownika.

  • /Library/LaunchAgents: Agenty dla poszczególnych użytkowników dostarczone przez administratora.

  • /Library/LaunchDaemons: Szanse dla całego systemu dostarczane przez administratora . środki przewidziane dla każdego użytkownika przez Mac OS X.

  • /System/Library/LaunchDaemons::

  • /System/Library/LaunchAgents całego systemu demony dostarczone przez Mac OS X.

demon jest usługa ogólnosystemowa, dla której istnieje jedno wystąpienie dla wszystkich klientów. Agent to usługa działająca na zasadzie pojedynczego użytkownika.

Configuration files są w formie property list.

składnia jest prosta, ale łatwo jest dostać to źle. The Wikipedia article ma dobre podsumowanie opcji, jeśli man page nie jest do twoich potrzeb.

Zasadniczo, instalujesz swoje narzędzie wiersza poleceń (twoja usługa) gdzieś, a następnie tworzysz plik konfiguracyjny launchd i umieszczasz go w jednej z powyższych lokalizacji. Możesz skonfigurować plik plist, aby launchd uruchamiał usługę podczas uruchamiania lub okresowo, lub w odpowiedzi na różne działania (takie jak zmiana zawartości folderu).

Istnieje dobry artykuł dogłębny here.

+0

Elementy w/Bibliotece (w przeciwieństwie do pliku ~/Biblioteki pojedynczego użytkownika) będą wyświetlane dla każdego logującego się użytkownika, nieprawdaż? –

+0

Tak, zgadza się. –

+0

Czy istnieje sposób, aby uruchomić tę aplikację jako root przy starcie przy użyciu launchd? –

4

Powinieneś rzucić okiem na launchd, możesz zrobić z nim wiele fajnych rzeczy. Na przykład steam wyjawił launchd, że gdy steam jest usuwany, uruchom pomocnika steam_delete. To narzędzie pomocnicze pomaga w całkowitym odinstalowaniu pary z systemu.

Inne obejmują mechanizm automatycznej aktualizacji Google Chrome na OS X.

Link, które pomogą Ci zacząć: Devdaily launchd examples

+0

dzięki za odpowiedź. – willyMon