Лучший способ запустить приложение Java в качестве демона *nix или службы Windows?

StackOverflow https://stackoverflow.com/questions/25530

Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top