You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为17、18、19版Keycloak Quarkus制作Linux systemctl启动脚本

Keycloak Quarkus 17-19版本 systemd 守护进程配置脚本

1. 创建systemd服务文件

在/etc/systemd/system/目录下创建keycloak.service文件,内容如下(根据实际环境替换占位符):

[Unit]
Description=Keycloak Quarkus (17-19) Identity and Access Management
After=network.target

[Service]
# 替换为运行Keycloak的系统用户和组
User=keycloak
Group=keycloak

# 替换为Keycloak的安装根目录
WorkingDirectory=/opt/keycloak

# 预创建PID目录并设置权限
ExecStartPre=/usr/bin/mkdir -p /run/keycloak
ExecStartPre=/usr/bin/chown keycloak:keycloak /run/keycloak

# 启动命令,保持与你原命令一致的start-dev模式
ExecStart=/opt/keycloak/bin/kc.sh start-dev

# 指定PID文件路径,对应原命令的PID输出
PIDFile=/run/keycloak/keycloak.pid

# 日志输出配置,对应原命令的重定向
StandardOutput=append:/var/log/keycloak/keycloak.stdout
StandardError=inherit

# 进程退出后的重启策略
Restart=on-failure
RestartSec=5

# 适配后台运行的进程类型
Type=forking

[Install]
WantedBy=multi-user.target

2. 前置准备操作

  • 创建日志目录并设置权限:
    mkdir -p /var/log/keycloak
    chown keycloak:keycloak /var/log/keycloak
    
  • 若keycloak系统用户不存在,可创建:
    useradd -r -s /sbin/nologin keycloak
    

3. 服务管理命令

  • 重新加载systemd配置:
    systemctl daemon-reload
    
  • 设置开机自启:
    systemctl enable keycloak
    
  • 启动服务:
    systemctl start keycloak
    
  • 查看服务状态:
    systemctl status keycloak
    
  • 停止服务:
    systemctl stop keycloak
    
  • 查看运行日志:
    tail -f /var/log/keycloak/keycloak.stdout
    # 或通过systemd日志查看
    journalctl -u keycloak -f
    

关键说明

  • 若需切换到生产环境模式,将ExecStart中的start-dev替换为start即可,同时确保Keycloak已完成生产配置(如数据库连接、HTTPS等)。
  • Type=forking适配原命令的后台运行逻辑,确保systemd能正确识别PID并管理进程生命周期。

内容的提问来源于stack exchange,提问作者HOST-X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 11:27:28