Как развернуть приложение Java

Я сделал приложение Java, которое должно быть выполнено как демон. Я использую Amazon Linux AMI, который использует SysVinit, и у меня уже есть сценарий инициализации для моего демона, я просто немного смущен тем, где разместить файлы.

Сначала я собирался разместить файл jar папке /usr/bin , так как я предполагаю, что есть обычные программы, но у меня в программе есть 2 библиотеки, так что у меня есть 1 файл файла jar и lib с двумя библиотеками внутри него.

Я беспокоюсь о размещении файла jar в /usr/bin а затем в библиотеках в /usr/lib поскольку jar и папка lib должны находиться в одной папке, кроме того, я чувствую, что это может привести к беспорядку в моей системе если в будущем эти библиотеки будут обновлены другой программой, по ошибке поменяв некоторые функциональные возможности, не говоря уже о том, что все становится громоздким, так как множество разных файлов распространяется повсюду.

Но поскольку мне нравится соответствовать стандартам, я не хочу идти и просто создавать случайную папку для своей программы и оставлять все, что мне нужно внутри нее.

Есть ли там правильный способ развертывания таких систем в Linux? Как лучший способ развертывания java-демона, который нуждается в некоторых библиотеках?

One Solution collect form web for “Как развернуть приложение Java”

Размещение JAR файла в каталоге /usr/bin полностью не является хорошей идеей. Есть несколько причин, по которым первая и самая важная – безопасность. Более или менее приложения должны быть изолированы. Размещение двоичных файлов и неизвестных и потенциально незащищенных файлов рядом с системным программным обеспечением делает поверхность атаки более широкой, чем требуется. Создание отдельного каталога имеет множество преимуществ: логическое разделение, безопасность и многие другие. Я настоятельно рекомендую книгу, которую я недавно прочитал, « Непрерывная доставка» .

Мои рекомендации:

  • создать отдельный пользователь и группу для этого приложения Java со своим собственным домашним каталогом, назовем его app-user ,
  • разверните все артефакты там,
  • создайте модуль systemd или sysv, который запускает это приложение Java в качестве app-user и загружает ваши библиотеки из домашней директории app-user .
  • Может подключаться от RPi к ноутбуку, но не наоборот
  • Как обновить IcedTea?
  • Написание системного файла systemd с исполняемым путем установки окружения
  • Как синхронизировать 2 xml-файла?
  • Запуск файла JNLP из Linux
  • Отсутствует 32-битная библиотека на 64-битной установке Linux
  • Не удалось запустить сеанс Java GUI X11 из контейнера докеров
  • Netbeans не отображает на моем компьютере
  • Плохое выполнение Java-приложения и плохого сервера
  • Tomcat не будет использовать setenv.sh
  • Как перезапустить Java с определенным аргументом?
  • Interesting Posts

    Почему я могу настроить IP-адрес на мостовом интерфейсе?

    Предотвращение нескольких нажатий клавиш с радиочастотного пульта

    Получить кодовое имя OSX из командной строки

    Требования к оборудованию для создания сервера Debian, который будет работать как ltsp, vpn и fileserver

    пояснение о chown (1) Спецификация POSIX

    Гиперсвязь и приоритет процесса

    Почему grep не возвращает то, что я ожидаю, когда я использую одинарные кавычки

    mount – как долго был установлен раздел?

    Ошибка MPI mpdboot

    Что такое syscall-template.S?

    Присоединительные линии с использованием редактора Vim

    Лучший способ гарантировать, что скрипт запускается один раз в один период?

    i3wm: как заставить несколько мониторов переключаться между рабочими областями в одной привязке

    SSL-сертификат для локального сервера Apache

    Почтовая фильтрация с procmail в системе postfix / dovecot с виртуальными пользователями

    Linux и Unix - лучшая ОС в мире.