================================================================================ Gerrit 服务器启停操作文档 ================================================================================ 文档名称:Gerrit 服务器启停操作指南 创建日期:2025-12-15 适用版本:Gerrit 3.3.8 服务器路径:/home/renjianbo/gerrit_install/review_site ================================================================================ 一、基本操作命令 ================================================================================ 【进入 Gerrit 目录】 cd /home/renjianbo/gerrit_install/review_site 【启动服务】 bin/gerrit.sh start 或者使用 Java 11(推荐): JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start 【停止服务】 bin/gerrit.sh stop 【重启服务】 bin/gerrit.sh restart 或者: bin/gerrit.sh stop sleep 3 JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start 【查看服务状态】 bin/gerrit.sh status 【查看服务进程】 ps aux | grep gerrit 或者: ps -ef | grep gerrit ================================================================================ 二、详细操作说明 ================================================================================ 【启动服务】 1. 基本启动: cd /home/renjianbo/gerrit_install/review_site bin/gerrit.sh start 2. 使用 Java 11 启动(推荐,避免版本兼容问题): cd /home/renjianbo/gerrit_install/review_site JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start 3. 启动后等待几秒,然后检查状态: sleep 5 bin/gerrit.sh status 【停止服务】 1. 正常停止: cd /home/renjianbo/gerrit_install/review_site bin/gerrit.sh stop 2. 如果正常停止失败,强制停止: # 查找进程 ID ps aux | grep gerrit | grep -v grep # 杀死进程(替换 PID 为实际进程 ID) kill -9 # 或者直接杀死所有 Gerrit 进程 pkill -9 -f gerrit 【重启服务】 1. 正常重启: cd /home/renjianbo/gerrit_install/review_site bin/gerrit.sh restart 2. 完整重启(推荐,确保使用 Java 11): cd /home/renjianbo/gerrit_install/review_site bin/gerrit.sh stop sleep 3 JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start sleep 5 bin/gerrit.sh status 【查看服务状态】 1. 查看服务状态: cd /home/renjianbo/gerrit_install/review_site bin/gerrit.sh status 2. 检查端口是否监听: netstat -tlnp | grep 8080 # HTTP 端口 netstat -tlnp | grep 29418 # SSH 端口 或者使用 ss 命令: ss -tlnp | grep 8080 ss -tlnp | grep 29418 3. 检查进程: ps aux | grep gerrit | grep -v grep 4. 测试 HTTP 服务: curl -s -o /dev/null -w "HTTP Status: %{http_code}\n" http://localhost:8080/ 5. 测试 SSH 服务: ssh -p 29418 renjianbo@localhost gerrit version ================================================================================ 三、日志查看 ================================================================================ 【查看实时日志】 1. HTTP 访问日志: cd /home/renjianbo/gerrit_install/review_site tail -f logs/httpd_log 2. SSH 访问日志: cd /home/renjianbo/gerrit_install/review_site tail -f logs/sshd_log 3. Gerrit 主日志: cd /home/renjianbo/gerrit_install/review_site tail -f logs/gerrit.log 4. 错误日志: cd /home/renjianbo/gerrit_install/review_site tail -f logs/error_log 【查看历史日志】 1. 查看最后 100 行 HTTP 日志: cd /home/renjianbo/gerrit_install/review_site tail -100 logs/httpd_log 2. 查看最后 50 行错误日志: cd /home/renjianbo/gerrit_install/review_site tail -50 logs/error_log 3. 搜索特定内容: cd /home/renjianbo/gerrit_install/review_site grep "error" logs/gerrit.log | tail -20 grep "renjianbo" logs/httpd_log | tail -20 ================================================================================ 四、常见问题处理 ================================================================================ 【问题1】服务启动失败 检查项: 1. 检查 Java 版本: java -version # 应该显示 Java 11 或更高版本 2. 检查端口是否被占用: netstat -tlnp | grep 8080 netstat -tlnp | grep 29418 如果端口被占用,可以: - 停止占用端口的进程 - 或修改 gerrit.config 中的端口配置 3. 查看错误日志: cd /home/renjianbo/gerrit_install/review_site tail -50 logs/error_log 4. 检查磁盘空间: df -h 5. 检查内存: free -h 【问题2】服务无法停止 解决方法: 1. 查找进程: ps aux | grep gerrit | grep -v grep 2. 强制停止: kill -9 或者: pkill -9 -f gerrit 3. 验证已停止: bin/gerrit.sh status ps aux | grep gerrit | grep -v grep 【问题3】服务启动后无法访问 检查项: 1. 检查服务是否运行: bin/gerrit.sh status 2. 检查端口是否监听: netstat -tlnp | grep 8080 3. 检查防火墙: sudo firewall-cmd --list-ports # 确保 8080 和 29418 端口已开放 4. 检查配置文件: cat etc/gerrit.config | grep listenUrl cat etc/gerrit.config | grep canonicalWebUrl 5. 测试本地访问: curl http://localhost:8080/ 【问题4】Java 版本问题 如果遇到 Java 版本错误: 1. 检查已安装的 Java 版本: ls /usr/lib/jvm/ 2. 使用 Java 11 启动: JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start 3. 或者设置环境变量: export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 export PATH=$JAVA_HOME/bin:$PATH bin/gerrit.sh start ================================================================================ 五、完整操作脚本 ================================================================================ 【启动脚本】 #!/bin/bash cd /home/renjianbo/gerrit_install/review_site JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start sleep 5 bin/gerrit.sh status 【停止脚本】 #!/bin/bash cd /home/renjianbo/gerrit_install/review_site bin/gerrit.sh stop sleep 3 ps aux | grep gerrit | grep -v grep 【重启脚本】 #!/bin/bash cd /home/renjianbo/gerrit_install/review_site bin/gerrit.sh stop sleep 3 JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start sleep 5 bin/gerrit.sh status curl -s -o /dev/null -w "HTTP Status: %{http_code}\n" http://localhost:8080/ 【状态检查脚本】 #!/bin/bash cd /home/renjianbo/gerrit_install/review_site echo "=== Gerrit 服务状态 ===" bin/gerrit.sh status echo "" echo "=== 端口监听状态 ===" netstat -tlnp | grep -E "8080|29418" echo "" echo "=== 进程状态 ===" ps aux | grep gerrit | grep -v grep echo "" echo "=== HTTP 服务测试 ===" curl -s -o /dev/null -w "HTTP Status: %{http_code}\n" http://localhost:8080/ ================================================================================ 六、系统服务配置(可选) ================================================================================ 如果需要将 Gerrit 配置为系统服务(开机自启动),可以创建 systemd 服务文件: 【创建服务文件】 sudo vi /etc/systemd/system/gerrit.service 【服务文件内容】 [Unit] Description=Gerrit Code Review After=network.target [Service] Type=forking User=renjianbo Group=renjianbo WorkingDirectory=/home/renjianbo/gerrit_install/review_site Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64" ExecStart=/home/renjianbo/gerrit_install/review_site/bin/gerrit.sh start ExecStop=/home/renjianbo/gerrit_install/review_site/bin/gerrit.sh stop Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target 【使用系统服务】 1. 重新加载 systemd: sudo systemctl daemon-reload 2. 启动服务: sudo systemctl start gerrit 3. 停止服务: sudo systemctl stop gerrit 4. 重启服务: sudo systemctl restart gerrit 5. 查看状态: sudo systemctl status gerrit 6. 设置开机自启动: sudo systemctl enable gerrit 7. 取消开机自启动: sudo systemctl disable gerrit ================================================================================ 七、快速参考命令 ================================================================================ 【常用命令速查】 # 启动 cd /home/renjianbo/gerrit_install/review_site && JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start # 停止 cd /home/renjianbo/gerrit_install/review_site && bin/gerrit.sh stop # 重启 cd /home/renjianbo/gerrit_install/review_site && bin/gerrit.sh stop && sleep 3 && JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start # 状态 cd /home/renjianbo/gerrit_install/review_site && bin/gerrit.sh status # 查看日志 cd /home/renjianbo/gerrit_install/review_site && tail -f logs/httpd_log # 检查端口 netstat -tlnp | grep -E "8080|29418" # 测试 HTTP curl http://localhost:8080/ # 测试 SSH ssh -p 29418 renjianbo@localhost gerrit version ================================================================================ 八、重要提示 ================================================================================ 1. 启动服务前,确保: - Java 11 或更高版本已安装 - 端口 8080 和 29418 未被占用 - 有足够的磁盘空间和内存 2. 停止服务前,建议: - 等待当前操作完成 - 通知用户(如果有) 3. 重启服务后,建议: - 等待 5-10 秒让服务完全启动 - 检查服务状态 - 测试 HTTP 和 SSH 访问 4. 日志文件位置: - HTTP 日志:logs/httpd_log - SSH 日志:logs/sshd_log - 主日志:logs/gerrit.log - 错误日志:logs/error_log 5. 配置文件位置: - 主配置:etc/gerrit.config - 安全配置:etc/secure.config 6. 数据目录: - Git 仓库:git/ - 数据库:db/ - 缓存:cache/ ================================================================================ 文档结束 ================================================================================