Fedora 27,openjdk 1.8.0和Gerrit 2.14.7。
这就是我得到的:
gerrit_testsite/bin/gerrit.sh start
Starting Gerrit Code Review: FAILED
日志为空。有gerrit.pid
个文件;相应的进程正在运行:
GerritCodeReview -jar /home/gerrit2/gerrit_testsite/bin/gerrit.war daemon -d /home/gerrit2/gerrit_testsite --run-id=1521606266.3474
但是没有任何东西在配置的端口8080上监听。
当我添加-x选项时,我可以看到gerrit.sh脚本正在等待gerrit.run
文件出现 - 这不会发生。
我尝试将超时时间增加到600秒。
我试过了gerrit.sh run
。这会创建一个包含两个警告的错误日志:
[main] WARN com.google.gerrit.sshd.SshDaemon : Cannot format SSHD host key [EdDSA]: invalid key type
[main] WARN com.google.gerrit.server.config.GitwebCgiConfig : gitweb not installed (no /usr/lib/cgi-bin/gitweb.cgi found)
再一次,8080都没有听。
我相信我第一次能够运行Gerrit。我不得不更改canonicalWebUrl参数,重新启动Gerrit并且从那时起就遇到了问题。我删除了我的gerrit_testsite目录并重新初始化它,但启动它仍然失败。
什么是SSHD密钥警告?我需要gitweb吗?还有什么地方可以看?
编辑:我从一个新的Fedora安装重新启动。然后:
$ java -jar gerrit.war init -d ~/review-site
....
Initialized /home/gerrit2/review-site
Executing /home/gerrit2/review-site/bin/gerrit.sh start
Starting Gerrit Code Review: FAILED
error: cannot start Gerrit: exit status 1
Waiting for server on 192.168.1.201:8080 ... OK
Opening http://192.168.1.201:8080/#/admin/projects/ ...FAILED
Open Gerrit with a JavaScript capable browser:
http://192.168.1.201:8080/#/admin/projects/
尽管收到了FAILED消息,我确实在logs目录中找到了gerrit.run
文件。 error_log
包含与之前相同的两个警告。 GerritCodeReview进程侦听端口8080,我可以通过Web浏览器访问。现在,生活很美好,但我想知道当我必须重新启动Gerrit时会发生什么。
EDIT2 :是的,正如我所担心的那样,在gerrit.sh restart
之后,我不仅会收到FAILED,而且还没有收听网络端口8080或SSH端口29418上的内容。
EDIT3 :总之,对我而言,我似乎可以在一个全新的操作系统上成功启动Gerrit,但是一旦我重新启动它,就会让它等待一个从未发生过的事件,或写入日志之前崩溃。
答案 0 :(得分:0)
问题可能是缺乏熵。 Gerrit从/ dev / random读取,在无头服务器上,在Gerrit有时间启动之前,熵可能会耗尽。
修复可能是安装haveged
包。
因为您使用的是Fedora,所需的命令是:
yum install haveged
chkconfig haveged on
service haveged start
这样做之后,Gerrit应该相对较快地开始。
注意:我已找到此解决方案here。
答案 1 :(得分:0)
我只是遇到了同样的问题,并且在您的日志中,此修复的提示就在这里:
[main] WARN com.google.gerrit.server.config.GitwebCgiConfig : gitweb not installed (no /usr/lib/cgi-bin/gitweb.cgi found)
您尚未安装gitweb,并且已在系统中对其进行配置。从gerrit.config中删除gitweb配置:
[gitweb]
type = gitweb
cgi = /usr/lib/cgi-bin/gitweb.cgi
或确保已正确安装。