Для запуска сервера Keycloak на сервере Linux существует возможность создать службу.
Скрипты для описания службы находятся в директории сервера KEYCLOAK_HOME/docs/contrib/scripts
.
$ ls /opt/keycloak/docs/contrib/scripts
total 16
drwxr-xr-x 2 wildfly wildfly 4096 May 3 06:10 systemd
drwxr-xr-x 3 wildfly wildfly 4096 May 3 06:10 service
-rw-r--r-- 1 wildfly wildfly 1446 May 3 06:10 README.md
drwxr-xr-x 2 wildfly wildfly 4096 May 3 06:10 init.d
Воспользуемся вариантом init.d
.
$ ls -lrt /opt/keycloak/docs/contrib/scripts/init.d
total 20
-rwxr-xr-x 1 wildfly wildfly 4681 May 3 06:10 wildfly-init-redhat.sh
-rwxr-xr-x 1 wildfly wildfly 7122 May 3 06:10 wildfly-init-debian.sh
-rw-r--r-- 1 wildfly wildfly 854 May 3 06:10 wildfly.conf
В данном случае имеем скрипт с переменными окружения которые используются при запуске сервера.
Для этого копируем конфигурацию wildfly.conf
на ее место.
$ sudo cp /opt/keycloak/docs/contrib/scripts/init.d/wildfly.conf /etc/default/keycloak
$ sudo vim /etc/default/keycloak
Далее нужно раскомментировать и указать значения для параметов.
# General configuration for the init.d scripts,
# not necessarily for JBoss AS itself.
# default location: /etc/default/keycloak
## Location of JDK
# JAVA_HOME="/usr/lib/jvm/java-8-oracle"
## Location of WildFly
JBOSS_HOME="/opt/keycloak"
## The username who should own the process.
JBOSS_USER=keycloak
## The mode WildFly should start, standalone or domain
JBOSS_MODE=standalone
## Configuration for standalone mode
JBOSS_CONFIG=standalone.xml
## Configuration for domain mode
# JBOSS_DOMAIN_CONFIG=domain.xml
# JBOSS_HOST_CONFIG=host-master.xml
## The amount of time to wait for startup
STARTUP_WAIT=60
## The amount of time to wait for shutdown
SHUTDOWN_WAIT=60
## Location to keep the console log
JBOSS_CONSOLE_LOG="/var/log/keycloak/console.log"
## Additionals args to include in startup
# JBOSS_OPTS="--admin-only -b 127.0.0.1"
После этого копируем скрипт описания службы запуска сервера.
В случае сервера Ubuntu
можно взять скрипт wildfly-init-debian.sh
$ sudo cp /opt/keycloak/docs/contrib/scripts/init.d/wildfly-init-debian.sh /etc/init.d/keycloak
Для дистрибутивов CentOS
можно взять скрипт wildfly-init-redhat.sh
Даем пользователю от которого будет запускать сервер Keycloak права на директории.
$ sudo chown -R wildfly:wildfly /var/log/keycloak/
$ sudo chown -R wildfly:wildfly /opt/keycloak-3.1.0.Final/
После этого можно использовать команды.
$ sudo service keycloak start
$ sudo service keycloak stop