Я ищу лучший метод для запуска приложения Java как демон * NIX или службы Windows. Я просмотрел Java Wrapper, Apache Commons project ' jsvc ' и проект Apache Commons "procrun" . Пока что Java Service Wrapper выглядит как лучший вариант... но мне интересно, есть ли там какие-либо другие "лицензированные продукты с открытым исходным кодом".
Лучший способ запуска приложения Java в качестве демона * nix или службы Windows?
Ответ 1
У меня был большой успех с помощью Java Service Wrapper. Я не смотрел на других, но основными сильными сторонами ServiceWrapper являются:
- Отличная поддержка x-платформы - я использовал ее в Windows и Linux, и нашел, что это легко на
- Solid Documentation - Документы понятны и точны, с отличными примерами
- Поддержка Deep per-platform. В системе управления окнами есть некоторые уникальные функции, которые отлично поддерживаются оболочкой сервиса (без перезапуска). И в Windows вы даже увидите свое имя приложения в списке процессов вместо "java.exe".
- Соответствие стандартам. В отличие от многих сценариев инициализации Java Java скрипты для обертки сервиса, как правило, соответствуют стандартам LSB. Это может оказаться очень важным, если вы когда-либо хотите управления высокой доступности из чего-то вроде Linux Heartbeat/HA.
Во всяком случае, только мои 2 цента...:)
Ответ 2
Другим вариантом является WinRun4J. Это только окна, но есть некоторые полезные функции:
- Поддержка 32-разрядной и 64-разрядной версий.
- API для доступа к журналу событий и реестру
- Может регистрировать услугу в зависимости от других сервисов (например, serviceA и serviceB должны запускаться до ServiceC)
Его также дружественный с открытым исходным кодом (CPL), поэтому никаких ограничений на использование.
(полное раскрытие: я работаю над этим проектом).
Ответ 3
Существуют ли какие-либо специальные атрибуты, которые необходимо применять (например, управление ресурсами, управляемыми ОС), которые вам необходимо поддерживать? В противном случае для Unix вы сможете демонтировать приложение, написав соответствующий init.d script и автоматически запустив приложение.