#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