如何为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
相关产品推荐
相关产品推荐

