Files
gerrit/create_systemd_service.sh

100 lines
2.4 KiB
Bash
Raw Normal View History

2025-12-22 17:12:39 +08:00
#!/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 ""