Лучший способ запустить приложение Java как * nix Daemon или Windows Service? - PullRequest
20 голосов
/ 25 августа 2008

Я ищу лучший способ запустить приложение Java в качестве демона * NIX или службы Windows. Я посмотрел на Java Service Wrapper , проект Apache Commons 'jsvc' и проект Apache Commons 'procrun' . Пока что Java Service Wrapper выглядит так, как будто это лучший вариант ... но мне интересно, есть ли другие лицензионные продукты с открытым исходным кодом?

Ответы [ 3 ]

18 голосов
/ 25 августа 2008

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

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

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

3 голосов
/ 11 мая 2009

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

  • 32-битная и 64-битная поддержка
  • API для доступа к журналу событий и реестру
  • Может зарегистрировать службу как зависимую от других служб (т. Е. ServiceA и serviceB должны запуститься до serviceC)

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

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

1 голос
/ 25 августа 2008

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

...