Forgerock:重新安装OpenDJ后启动目录服务器报错问题咨询
解决OpenDJ启动时的锁文件创建失败问题
碰到过好多次OpenDJ 2.6.0版本启动时的这个锁文件报错了,我来给你拆解下怎么解决:
首先先解读下你的报错核心信息:
目录服务器无法获取文件/Space/Tests/XX/opendj/locks/server.lock的独占锁:尝试获取文件/Space/Tests/XX/opendj/locks/server.lock的独占锁被拒绝,原因是创建锁文件失败:IOException(No such file or directory)
虽然提示里说“通常表示已有一个该服务器实例在运行”,但你这个报错的关键是锁文件所在的目录不存在或者权限不足,当然也不排除进程残留的可能,按下面的步骤逐步排查:
第一步:检查锁文件目录是否存在并修复权限
- 先确认
/Space/Tests/XX/opendj/locks目录是否存在,执行命令:
如果提示"No such file or directory",直接创建这个目录:ls -ld /Space/Tests/XX/opendj/locksmkdir -p /Space/Tests/XX/opendj/locks - 给这个目录设置正确的权限,确保运行OpenDJ的用户(别用root,建议用专门的服务用户比如
opendj)有读写权限:chown -R opendj:opendj /Space/Tests/XX/opendj/locks chmod -R 750 /Space/Tests/XX/opendj/locks
第二步:排查是否有残留的OpenDJ进程
有时候旧的OpenDJ进程没正常退出,哪怕锁文件目录没问题,也可能触发类似报错:
- 查找相关进程:
或者更精准的筛选:ps aux | grep opendjps aux | grep start-ds - 如果找到对应的进程,用
kill -9命令杀掉(替换<PID>为实际进程ID):
清理完进程后再尝试启动OpenDJ。kill -9 <PID>
第三步:确认启动路径和配置是否正确
- 确保你是在OpenDJ的
bin目录下执行启动命令,切换到对应目录再启动:
因为如果在其他目录执行,可能会导致路径解析错误,找不到locks目录。cd /Space/Tests/XX/opendj/bin && ./start-ds - 也可以检查OpenDJ的配置文件
config/config.ldif,找到ds-cfg-lock-file属性,确认它指向的路径确实是/Space/Tests/XX/opendj/locks/server.lock,如果路径不对,修改后再重启。
针对你用的OpenDJ 2.6.0 + OpenAM 12.0.0组合,额外提醒下:不要用root用户启动OpenDJ,这个版本的服务对权限控制比较严格,用普通服务用户启动能避免很多权限类的问题。
内容的提问来源于stack exchange,提问作者cheeb
相关产品推荐
相关产品推荐

