Windows10安装Rundeck运行start_rundeck.bat不生成service.log如何解决
Windows环境Rundeck不生成service.log问题排查修复方案
第一步:校验日志配置与路径权限
- 首先确认Rundeck根目录下的
etc/log4j2.properties配置文件是否存在、是否被意外修改,重点检查appender.service.fileName配置项的路径,默认应为${sys:rundeck.server.log.dir}/service.log - 检查配置中指定的日志输出目录(默认是Rundeck根目录下的
server/logs文件夹)权限:右键文件夹→属性→安全,确认当前运行start_rundeck.bat的Windows用户对该目录拥有写入、修改权限,该问题90%以上都是普通用户启动进程、日志目录被设置只读权限导致写入失败 - 如果修改过默认日志路径,确认路径不存在中文、空格等特殊字符,Windows环境下Java日志组件对特殊字符路径兼容度低,容易出现静默写失败的情况
第二步:校验启动参数与日志组件加载状态
- 右键编辑
start_rundeck.bat文件,检查是否存在-Dlog4j.configurationFile参数被修改、或者被注释的情况,默认启动参数会指定加载etc/log4j2.properties,如果配置文件路径填写错误会导致日志组件加载失败,仅输出控制台日志不生成文件日志 - 启动
start_rundeck.bat时不要关闭弹出的CMD窗口,查看窗口输出的启动日志,有没有包含ERROR StatusLogger No log4j2 configuration file found类报错,有这类报错直接修正log4j2配置文件路径即可 - 确认安装的Rundeck版本和正常运行的版本一致,部分旧版本Rundeck Windows安装包的默认log4j配置存在bug,会遗漏service.log的输出配置,可直接将正常运行环境的
etc/log4j2.properties文件拷贝替换异常环境的对应文件后重启测试
第三步:排查进程冲突问题
- 确认是否同时存在两种启动模式的冲突:如果已经提前把Rundeck注册为Windows系统服务且服务处于运行状态,再手动运行
start_rundeck.bat时,日志文件会被系统服务进程独占锁定,手动启动的进程无法写入日志,需要先停止系统服务内的Rundeck进程,再重新运行bat测试 - 如果需要将Rundeck注册为系统服务运行,不要直接运行
start_rundeck.bat,执行rundeckd install注册服务后从服务管理器启动,日志会正常生成到对应目录
内容的提问来源于stack exchange,提问作者roboragi
相关产品推荐
相关产品推荐

