Запуск сервера Payara как службы

#glassfish #payara

#glassfish #payara

Вопрос:

Я хочу, чтобы сервер payara запускался как сервис. Я вошел в asadmin как sudo и использовал команду create-service. Выдается следующий вывод.

 The Service was created successfully. Here are the details:
Name of the service:production
Type of the service:Domain
Configuration location of the service:/etc/init.d/payara_production
User account that will run the service: root
You have created the service but you need to start it yourself.  Here are the most typical Linux commands of interest:

* /etc/init.d/payara_production start
* /etc/init.d/payara_production stop
* /etc/init.d/payara_production restart

For your convenience this message has also been saved to this file: 
/home/buddhika/payara/glassfish/domains/production/PlatformServices.log
Command create-service executed successfully.
  

Это создает скрипт payara_production в папке /etc/init.d/, однако после перезагрузки компьютера этот скрипт не выполняется. Я должен вручную запустить payara, чтобы запустить его.

Что означает «Вы создали сервис, но вам нужно запустить его самостоятельно», у меня не было подобной проблемы с версиями GlassFish, которые я использовал ранее.

Как я могу запустить Payara как службу?

Ответ №1:

Сервер Payara (а также GlassFish) создают службу, используя механизм System V. Этот механизм устарел и плохо поддерживается новыми системами Linux. Большинство современных дистрибутивов Linux используют SystemD, который поддерживает запуск / остановку служб System V с помощью system команды, но не включает их напрямую при загрузке без каких-либо изменений.

Ваш дистрибутив Linux, скорее всего, использует SystemD. Чтобы запустить службу во время загрузки, вы можете следовать этому руководству: https://linoxide.com/linux-how-to/enable-disable-services-ubuntu-systemd-upstart /. Если у вас случайно есть доступ к порталу поддержки Payara, вы можете следовать этому подробному руководству: https://support.payara.fish/hc/en-gb/articles/360034527494-Configure-a-Payara-Server-Domain-as-a-System-Service

Короче говоря, вам нужно создать service файл в /etc/systemd/system/ или любой другой папке, где SystemD ожидает его. Этот файл должен содержать ExecStart инструкцию по запуску сервиса, в вашем случае /etc/init.d/payara_production start . Если вы хотите, чтобы он запускался при загрузке также после сбоя, добавьте инструкцию `Перезапускать = всегда».

Если у вашего файла службы есть имя payara.service , вы можете включить службу при загрузке с помощью:

 sudo systemctl enable payara
  

Редактировать:

Кроме того, вы можете запустить службу, созданную сервером Payara, при загрузке с помощью SystemD, если измените сценарий, чтобы добавить некоторые заголовки в комментарии, как описано здесь: https://serverfault.com/questions/849507/systemctl-doesnt-recognize-my-service-default-start-contains-no-runlevels-abo

Например, добавьте этот комментарий прямо под #!/bin/sh строкой:

 ### BEGIN INIT INFO
# Provides:          payara_production
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: your description here
### END INIT INFO
  

А затем вы можете установить его с помощью команды SystemD:

 systemctl enable payara_production.service