Вопрос Как настроить службы на Java для запуска?


Каков наилучший способ настроить Java-программу для запуска службы и начать ее загрузку?

  • выскочка (pre-start script а также post-stop script ?)
  • простой старый SysV init? (start-stop-daemon ?)

В моем случае я заинтересован в создании Jira, который имеет свои собственные сценарии запуска и остановки в стиле Tomcat - $JIRA_HOME/bin/startup.sh а также $JIRA_HOME/bin/shutdown.sh,


3
2017-12-21 17:58


происхождения




ответы:


В большинстве случаев вы можете вырезать много кода в этих сценариях и просто сосредоточиться на запуске основной программы. Если вы можете сказать, что он работает на переднем плане вместо фона, что упростит ситуацию. В противном случае вы должны использовать «ожидать fork» или «ожидать демона», чтобы следовать за вилками, которые программа должна делать, чтобы отсоединиться от управляющих терминалов.

pre-start в основном предназначен для настройки, например создания dirs в / var / run. Вы также можете указать файл конфигурации, так как среда будет передана вместе с основным exec.

пост-старт может быть полезен, если вы хотите убедиться, что выскочка не учитывает запуск службы до тех пор, пока не будет выполнено определенное условие (например, порт отвечает на запросы).

В конечном счете, цель состоит в том, чтобы сделать его максимально простым. Если startup.sh запускает «jira -daemon», и вы можете вместо этого запускать «jira», и он не отсоединяется, а затем вы можете просто выскочить

start on runlevel [2345]
stop on runlevel [!2345]

exec jira

Пока процесс не демонанизируется, его очень легко выскочить, чтобы отслеживать, что он делает, что в конечном итоге приводит к более простому файлу задания и более надежной системе.


3
2017-12-30 07:39