2008-08-25 21 views
19

Szukam najlepszej metody uruchomienia aplikacji Java jako demona * NIX lub usługi Windows. Zajrzałem do Java Service Wrapper, Apache Commons project 'jsvc' i Apache Commons project 'procrun'. Jak dotąd, Java Service Wrapper wygląda na najlepszą opcję ... ale zastanawiam się, czy są tam jakieś inne licencjonowane produkty "Open Source friendly".Najlepsza metoda uruchamiania aplikacji Java jako * Demon Daemon lub usługa Windows?

+0

W przypadku usług dla systemu Windows zobacz to pytanie: http://stackoverflow.com/questions/68113/how-to-create-a-windows-service-from-java-app/3626452#3626452 (Dodanie tego komentarza jako Google sprowadził mnie tutaj, ale inne pytanie ma więcej odpowiedzi). – atomicules

Odpowiedz

17

Ja sam odniosłem wielki sukces dzięki programowi Java Service Wrapper. Nie spojrzał na innych, ale główne atuty ServiceWrapper są:

  • wielkie wsparcie x-platform - Używałem go na Windows i Linux, a okazało się, że jest łatwy zarówno
  • solidna dokumentacja - Dokumenty są jasne i na temat, z doskonałymi przykładami:
  • Wsparcie dla wielu platform - W systemie zarządzania usługami dla okien istnieje kilka unikalnych cech, które są doskonale obsługiwane przez opakowanie usługi (bez ponownego uruchamiania). W systemie Windows nawet nazwa aplikacji będzie widoczna na liście procesów, a nie tylko "java.exe".
  • Zgodność ze standardami - w przeciwieństwie do wielu skryptów inicjalizujących Java ad-hoc, skrypty do obsługi usługi są zazwyczaj zgodne ze standardami LSB. Może to być bardzo ważne, jeśli chcesz zarządzać wysoką dostępnością z systemu Linux Heartbeat/HA.

W każdym razie, tylko moje 2 centy ... :)

+1

Nie mogę tego wystarczająco polecić –

1

Czy są jakieś specjalne atrybuty, które należy zastosować (takie jak zarządzanie zasobami z przewodnikiem systemu operacyjnego), które należy obsługiwać? W przeciwnym razie, w systemie Unix powinieneś móc zdememonizować swoją aplikację, pisząc odpowiedni skrypt init.d i ustawiając aplikację tak, aby uruchamiała się automatycznie.

3

Inną opcją jest WinRun4J. To jest tylko okna, ale ma kilka przydatnych funkcji:

  • 32 bit i 64 bit wsparcie
  • API do dostępu do dziennika zdarzeń i ewidencja
  • można zarejestrować usługę będzie uzależniona od innych usług (tj serviceA i serviceB musi uruchomić się przed usługąC)

Jest również przyjazny dla otwartych źródeł (CPL), więc nie ma ograniczeń w użyciu.

(pełne ujawnienie: pracuję nad tym projektem).