如何将 keycloak 安装为服务,使其自动启动?

Posted

技术标签:

【中文标题】如何将 keycloak 安装为服务,使其自动启动?【英文标题】:How can I install keycloak as a service, so it starts automatically? 【发布时间】:2019-11-24 20:25:39 【问题描述】:

我已将 Wildfly 10.0 作为服务安装,我运行了 service.bat 文件,但我也需要 keyloak 作为服务。如果我运行 keycloak 的 service.bat 文件,它会显示:

错误:服务 Wildfly 已存在。

我的keycloak版本是3.3.0,所以基本上keycloak的服务想安装wildfly作为服务,还是看不懂。

【问题讨论】:

【参考方案1】:

编辑:使用NSSM - the Non-Sucking Service Manager找到了更好的解决方案

本来不想使用额外的工具,但它只有324 KB大小,非常简单高效。

install.bat

nssm.exe install "Keycloak" "keycloak/run.bat"
nssm.exe set "Keycloak" AppDirectory "keycloak/"
nssm.exe set "Keycloak" Description "Keycloak Identity and Access Management"

我使用单独的 run.bat,如果配置发生变化(例如端口),我可以修改 run.bat 而不是重新安装服务。

keycloak/run.bat

bin/standalone.bat -Djboss.http.port=8180

结束编辑


在 Keycloak 9.0.0 版中,我必须复制以下目录:

keycloak/docs/contrib/scripts/servicekeycloak/bin/service

以管理员权限打开 CMD,导航到新目录 keycloak/bin/service 并执行以下命令:

服务安装 /name Keycloak /display Keycloak /desc "Keycloak 服务”/启动

这应该可以解决您与“Wildfly”服务名称的冲突。 然后使用控制台添加一个新用户:keycloak/bin/add-user.bat

登录http://localhost:9990/,找到keycloak部署http://localhost:8080/auth/(端口在keycloak/standalone/configuration/standalone.xml中配置):

【讨论】:

【参考方案2】:

服务脚本的确切语法取决于您使用的操作系统。在 Windows 上,您可以包含一个 name 参数来更改已安装服务的名称:

.\service.bat install /name Keycloak

【讨论】:

【参考方案3】:

从 Windows 上的 Keycloak 12 开始

复制[keycloak 安装目录]\docs\contrib\scripts\service 到[keycloak 安装目录]\bin

[keycloak 安装目录]\bin\service 运行

service.bat /name keycloak /display Keycloak /desc "Keycloak Http Server"

【讨论】:

【参考方案4】:

Wildfly 是用于创建服务的默认名称。您可以更改 service.bat 文件中的默认值。在执行service install之前,在文件中查找以下条目并根据需要进行更新。

rem defaults
set SHORTNAME=Wildfly
rem NO quotes around the display name here !
set DISPLAYNAME=WildFly
rem NO quotes around the description here !
set DESCRIPTION=WildFly Application Server

【讨论】:

【参考方案5】:

要将 Keycloak 10 作为 Windows 服务安装,我按照以下步骤操作(根据需要更改路径!):

    在 C:\tools\keycloak-10.0.2\bin\standalone.bat 中添加这些行

    设置 JAVA_HOME=C:\tools\openjdk-15_windows-x64\jdk-15 设置 JBOSS_HOME=C:\tools\keycloak-10.0.2

(我不太喜欢这个,但我不希望在系统或帐户级别进行此设置)

    以管理员身份打开 cmd ([WINDOWS]+R, cmd, [CTRL][SHIFT][ENTER])

    cd C:\tools\keycloak-10.0.2

    md bin\服务

    xcopy /s docs\contrib\scripts\service\ bin\service

    cd bin\服务

    service.bat install /name keycloak /display Keycloak /startup

    net start keycloak

要卸载,你可以这样做

service.bat /uninstall /name keycloak

附:跑过 “WFLYSRV0239:使用退出代码 1 中止” https://access.redhat.com/solutions/3712111

解决方案:确保运行该服务的 Windows 用户可以访问和读写 JBOSS_HOME。

【讨论】:

以上是关于如何将 keycloak 安装为服务,使其自动启动?的主要内容,如果未能解决你的问题,请参考以下文章

将MongoDB安装为Windows服务---安装MongoDB服务

linux下将java程序安装为服务自启动

linux下将java程序安装为服务自启动

linux下将java程序安装为服务自启动

linux下将java程序安装为服务自启动

使用 WiX 将 NServiceBus.Host 安装为服务