Files
gerrit/create_systemd_service.sh
2025-12-22 17:12:39 +08:00

100 lines
2.4 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 创建 Gerrit systemd 服务,确保服务稳定运行和自动启动
echo "=========================================="
echo "创建 Gerrit systemd 服务"
echo "=========================================="
echo ""
# 检查是否有 root 权限
if [ "$EUID" -ne 0 ]; then
echo "❌ 此脚本需要 root 权限,请使用 sudo 运行"
echo ""
echo "使用方法:"
echo " sudo bash create_systemd_service.sh"
exit 1
fi
GERRIT_HOME="/home/renjianbo/gerrit_install/review_site"
GERRIT_USER="renjianbo"
JAVA_HOME="/usr/local/java/jdk-17.0.12+7"
echo "配置信息:"
echo " 服务目录: ${GERRIT_HOME}"
echo " 运行用户: ${GERRIT_USER}"
echo " Java 路径: ${JAVA_HOME}"
echo ""
# 创建 systemd 服务文件
echo "创建 systemd 服务文件..."
sudo tee /etc/systemd/system/gerrit.service > /dev/null << EOSERVICE
[Unit]
Description=Gerrit Code Review
After=network.target
[Service]
Type=forking
User=${GERRIT_USER}
Group=${GERRIT_USER}
WorkingDirectory=${GERRIT_HOME}
Environment="JAVA_HOME=${JAVA_HOME}"
Environment="PATH=${JAVA_HOME}/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=${GERRIT_HOME}/bin/gerrit.sh start
ExecStop=${GERRIT_HOME}/bin/gerrit.sh stop
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOSERVICE
if [ $? -eq 0 ]; then
echo "✅ systemd 服务文件创建成功"
else
echo "❌ 创建服务文件失败"
exit 1
fi
echo ""
echo "重新加载 systemd 配置..."
sudo systemctl daemon-reload
if [ $? -eq 0 ]; then
echo "✅ systemd 配置已重新加载"
else
echo "❌ 重新加载失败"
exit 1
fi
echo ""
echo "设置开机自启动..."
sudo systemctl enable gerrit
if [ $? -eq 0 ]; then
echo "✅ 开机自启动已设置"
else
echo "❌ 设置开机自启动失败"
exit 1
fi
echo ""
echo "=========================================="
echo "✅ systemd 服务配置完成!"
echo "=========================================="
echo ""
echo "服务管理命令:"
echo " 启动服务: sudo systemctl start gerrit"
echo " 停止服务: sudo systemctl stop gerrit"
echo " 重启服务: sudo systemctl restart gerrit"
echo " 查看状态: sudo systemctl status gerrit"
echo " 查看日志: sudo journalctl -u gerrit -f"
echo ""
echo "服务特性:"
echo " ✅ 开机自动启动"
echo " ✅ 故障自动重启失败后10秒重启"
echo " ✅ 日志记录到 systemd journal"
echo ""