В этом посте я собираюсь рассказать как превратить REST сервис, написанный на Java, в Linux службу, устанавливаемую пакетным менеджером. Итак, первым делом забудьте о тяжеловесных серверах приложений вроде JBoss AS или Oracle WebLogic. Выбираем какой-нибудь легковесный встраиваемый сервер. Это может быть Jetty , Grizzly или даже Simple . Логи предпочтительнее писать в syslog. И Log4j и Logback позволяют это сделать. Для написания сервиса я выбираю Dropwizard (готовая связка Jetty + Jersey + Logback + Metrics), но это совсем необязательно. При сборке нужно положить зависимости в отдельную внешнюю папку или запаковать внутрь jar рядом c вашим кодом (maven-assembly-plugin или maven-shade-plugin в помощь). Для простоты демонстрации я выбрал второй вариант. Теперь всё готово для превращения. Для запуска службы будем использовать systemd - современную систему инициализации и менеджер служб для Linux. Нам понадобится простой shell скрипт и service файл. Выглядеть это будет примерно так:
Здесь я делюсь мыслями об интересных проектах, библиотеках кода и инструментарии разработчика.