Как развернуть приложение 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 .
  • Использование bash, чтобы убедиться, что одна программа успела начать, прежде чем запускать другую
  • Как написать комбинацию сценариев Java / Shell, чтобы вы могли вызывать Java-программу как удаленную команду и все же поставлять локальный файл?
  • Процесс Java зависает, пока я не использую 100% CPU
  • Мертвые ключи, не работающие в приложениях Java Swing
  • Java на FreeBSD
  • Установка Rubymine без sun-java6-jre
  • Как установить JRE на firefox с Fedora (64 бит)
  • Запуск параллельных заданий по Ubuntu - различия между конфликтами ввода / вывода между Perl и Java
  • Ошибка при загрузке разделяемых библиотек: libdl.so.2 (и другие), нет такого файла. Существуют библиотеки
  • У установки Jre нет файла / usr / bin / java?
  • Использование NetBeans на ARM Linux?
  • Interesting Posts

    ssh не использует ~ / .ssh / config, даже после того, как я играю с разрешениями

    менее в сочетании с последовательными цветовыми последовательностями предотвращает разрывы страниц

    Сценарий оболочки для перемещения файлов, если определенный процент строк содержит определенную строку

    Что такое событие hotplug из интерфейса?

    Курсор указывает на дно, когда zip-файл открывается с помощью vim

    Версия библиотеки, версия API и soname: как их назвать?

    восстановление данных после частичного измельчения

    Копировать команду с аргументами командной строки

    Как получить количество слов, введенных в качестве ввода в команде «читать»?

    заменить клавишу меню с помощью caplock и capslock с левым управлением с помощью xkb

    Почему назначения переменных bash влияют на последний код выхода $? и где это документировано?

    Скомпилируйте источник с более поздними библиотеками на одном сервере и используйте двоичный файл на более старом сервере

    Не удается экспортировать уже установленную папку NFS

    Автоматизация задач С помощью программы .EXE и скрипта Bash?

    Как обновить PHP до 5.3 на Debian 5.0 (Lenny)?

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