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"
|