Files
baijiahao_data_crawl/install_service.sh

111 lines
2.9 KiB
Bash
Raw Normal View History

2025-12-25 11:16:59 +08:00
#!/bin/bash
# 百家号守护进程服务安装脚本Linux systemd
set -e
echo "================================================================"
echo " 安装百家号数据同步守护进程服务"
echo "================================================================"
echo ""
# 检查是否以root权限运行
if [ "$EUID" -ne 0 ]; then
echo "[X] 请使用root权限运行此脚本"
echo " sudo bash install_service.sh"
exit 1
fi
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SERVICE_FILE="bjh_daemon.service"
DAEMON_SCRIPT="data_sync_daemon.py"
echo "[配置信息]"
echo " 工作目录: $SCRIPT_DIR"
echo " 服务文件: $SERVICE_FILE"
echo " 守护脚本: $DAEMON_SCRIPT"
echo ""
# 检查守护进程脚本是否存在
if [ ! -f "$SCRIPT_DIR/$DAEMON_SCRIPT" ]; then
echo "[X] 未找到守护进程脚本: $SCRIPT_DIR/$DAEMON_SCRIPT"
exit 1
fi
# 检查Python3是否安装
if ! command -v python3 &> /dev/null; then
echo "[X] 未安装Python3正在安装..."
yum install -y python3 || apt-get install -y python3
fi
PYTHON_PATH=$(which python3)
echo " Python路径: $PYTHON_PATH"
echo ""
# 创建临时服务文件(使用实际路径)
TEMP_SERVICE="/tmp/bjh_daemon.service"
cat > "$TEMP_SERVICE" <<EOF
[Unit]
Description=百家号数据同步守护进程
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=$SCRIPT_DIR
ExecStart=$PYTHON_PATH $SCRIPT_DIR/$DAEMON_SCRIPT
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
# 复制服务文件到systemd目录
echo "[>] 正在安装服务..."
cp "$TEMP_SERVICE" /etc/systemd/system/bjh_daemon.service
chmod 644 /etc/systemd/system/bjh_daemon.service
# 重新加载systemd
echo "[>] 重新加载systemd..."
systemctl daemon-reload
# 启用服务(开机自启)
echo "[>] 启用开机自启..."
systemctl enable bjh_daemon.service
# 启动服务
echo "[>] 启动服务..."
systemctl start bjh_daemon.service
# 检查服务状态
sleep 2
if systemctl is-active --quiet bjh_daemon.service; then
echo ""
echo "================================================================"
echo " 安装成功!"
echo "================================================================"
echo ""
echo "[✓] 服务已安装并启动"
echo "[✓] 服务名称: bjh_daemon.service"
echo "[✓] 开机自启: 已启用"
echo ""
echo "[常用命令]"
echo " 查看状态: systemctl status bjh_daemon"
echo " 查看日志: journalctl -u bjh_daemon -f"
echo " 停止服务: systemctl stop bjh_daemon"
echo " 重启服务: systemctl restart bjh_daemon"
echo " 禁用自启: systemctl disable bjh_daemon"
echo ""
else
echo ""
echo "[X] 服务启动失败,请查看日志:"
echo " journalctl -u bjh_daemon -n 50"
echo ""
fi
# 清理临时文件
rm -f "$TEMP_SERVICE"