111 lines
2.9 KiB
Bash
111 lines
2.9 KiB
Bash
|
|
#!/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"
|