Java
Groovy & Grails
Build automation
Comments 15
0
а зачем?
Оно вполне нормально запускается напрмер из upstart, и шатдаунится штатно.
0
У java service wrapper есть функциональность watchdog, которая перезапускает JVM в случае зависания. stdout и stderr пишутся в ротируемые логи. Это первое что приходит на ум. А если ОС windows или solaris?
0
Upstart и systemd делают все то же штатно безо всяких врапперов. Лишний враппер им только мешает.

> если ОС windows
тогда надо запускать сервисом

> solaris
Я в нем совсем не разбираюсь, но разве в SMF нет штатной функциональности для new style daemons?
0
Тот же враппер есть и под Windows, по-умолчанию конфигурируется в pom.xml "windows-x86-32".
Плюс нет необходимости в самой программе следить в разных платформах, что запущен только один ее процесс, это есть «из коробки».

Я вас не переубеждаю, каждый использует то что ему удобно. Лично мне так проще, так же как и разработчикам Nexus, Sonar и т.п.
0
В солярисе я не специалист, но сколько раз сталкивался на работах с устаревшими серверами на solaris, каждый раз без проблем использовал java service wrapper.

Когда пытался решить штатными средствами запуск одного процесса в приложении, в том же jruby на solaris не работал file lock.
0
«Мы» делаем из java-приложения демона только тогда, когда этого невозможно избежать. Да и то стараемся обходить такой случай.

Контрольные вопросы ( само собой, они возникают как послеследствие jsvc и daemon(ize) ):

1) что с пид-файлом?
2) решили ли вы проблему HUP (напоминаю, что по-апачевски это start/stop, а по-сановски это «Signal is internal proprietary API and may be removed in a future release.»)
0
То есть поймать сигнал и что-то сделать без гашения процесса всё равно не получится?
0
Как вариант проприетарные sun.misc.Signal и sun.misc.SignalHandler или addShutdownHook, как указывал в публикации(и жди себе, пока не прийдет SIGKILL).
0
Так в том-то и дело :) Сановские ругательства javac на использование «sun.misc.Signal*» продолжаются уже много лет, но никак в реальную опасность не превращаются. Их и используем.
+2
Мы используем spring-boot и systemd для этих целей. systemd вообще оказалось очень просто — никаких сложных скриптов, конфиг-файл для сервиса занимает 5-10 строк.

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started-first-application-executable-jar
http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html#deployment-systemd-service
Only those users with full accounts are able to leave comments., please.