2008-08-25 9 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 2010-09-02 11:05:27

ответ

17

У меня был большой успех с помощью Java Service Wrapper. Я не смотрел на других, но основные сильных сторонах ServiceWrapper являются:

  • Большой поддержки х-платформа - я использовал его на Windows, и Linux, и нашел, что это просто как на
  • Solid Документации - Документы являются ясными и точными, с отличными примерами
  • Глубокая поддержка для каждой платформы. В системе управления услугами окна есть уникальные функции, которые отлично поддерживаются оболочкой сервиса (без перезапуска). И в Windows вы даже увидите свое имя приложения в списке процессов, а не просто «java.exe».
  • Соответствие стандартам - в отличие от многих специальных сценариев Java-сценариев сценарии для сервисной обертки имеют тенденцию соответствовать стандартам LSB. Это может оказаться очень важным, если вы когда-либо хотите управления высокой доступностью от чего-то вроде Linux Heartbeat/HA.

Во всяком случае, только мои 2 цента ... :)

+1

Не могу рекомендовать это достаточно высоко – 2009-05-11 08:10:57

1

Существуют ли какие-либо специальные атрибуты, которые необходимо применять (например, управление ресурсами с помощью ОС), которые необходимо поддерживать? В противном случае для Unix вы сможете демонизировать свое приложение, написав соответствующий сценарий init.d и настроив свое приложение на автоматическое начало.

3

Другой вариант WinRun4J. Это только окна, но имеет некоторые полезные функции:

  • 32 бит и 64 бит Поддержка
  • API для доступа к журналу событий и реестра
  • Может зарегистрировать сервис будет зависеть от других услуг (т.е. serviceA и serviceB должен запускаться до обслуживанияC)

Его также с открытым исходным кодом (CPL), поэтому никаких ограничений на использование.

(полное раскрытие: я работаю над этим проектом).