2008-08-25 10 views
19

Java 응용 프로그램을 * NIX 데몬 또는 Windows 서비스로 실행하는 가장 좋은 방법을 찾고 있습니다. Java Service Wrapper, Apache Commons project 'jsvc'Apache Commons project 'procrun'을 살펴 봤습니다. 지금까지 Java Service Wrapper는 최상의 옵션 인 것처럼 보였습니다 ... 그러나 다른 "오픈 소스 친화적 인"라이센스 제품이 있는지 궁금합니다.Java 응용 프로그램을 * nix 데몬 또는 Windows 서비스로 실행하는 가장 좋은 방법은 무엇입니까?

+0

Windows 서비스의 경우 다음 질문을 참조하십시오. http://stackoverflow.com/questions/68113/how-to-create-a-windows-service-from-java-app/3626452#3626452 (이 주석을 Google로 추가 나를 데려왔다.하지만 다른 질문에는 더 많은 대답이있다.) – atomicules

답변

17

Java Service Wrapper에서 큰 성공을 거두었습니다. 나는 다른 사람을보고하지 않은,하지만 ServiceWrapper의 주요 장점은 다음과 같습니다

  • 큰 X 플랫폼 지원 - 나는 윈도우와 리눅스를 사용하고, 두
  • 솔리드 문서에 쉽게 발견했습니다 - 문서는 명확하고 중요한 예가 있습니다
  • 플랫폼 별 깊은 지원 - 서비스 래퍼 (w/o 재시작 없음)에서 완벽하게 지원되는 창 서비스 관리 시스템의 몇 가지 고유 기능이 있습니다. Windows의 경우 "java.exe"대신 프로세스 목록에 앱 이름이 표시됩니다.
  • 표준 준수 - 많은 ad-hoc Java init 스크립트와 달리 서비스 래퍼 용 ​​스크립트는 LSB 표준을 준수하는 경향이 있습니다. Linux Heartbeat/HA와 같은 고 가용성 관리를 원하는 경우 이는 매우 중요합니다. 어쨌든

, 그냥 내 2 센트 ... :)

+1

이것을 충분히 높일 수는 없습니다. –

1

지원해야하는 (OS 가이드 리소스 관리와 같은) 특별한 속성이 있습니까? 그렇지 않으면 Unix에서 적절한 init.d 스크립트를 작성하고 앱이 자동으로 시작되도록 설정하여 애플리케이션을 대몬화할 수 있어야합니다.

3

또 다른 옵션은 WinRun4J입니다. 이 내용은 창이지만 몇 가지 유용한 기능을 가지고 있습니다 :

  • 32 비트 및 64 비트 지원 이벤트 로그를 액세스 및 기타 서비스에 의존하는 서비스를 등록 할 수
  • 레지스트리하기
  • API (즉 serviceA 및 serviceB 서비스 전에 시작해야 함 C)

오픈 소스 (CPL)이므로 사용상의 제한이 없습니다.

(전체 공개 : 저는이 프로젝트에서 작업 중입니다).