78 lines
1.9 KiB
Bash
Executable File
78 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# 安装微信适配器为系统服务(需要先完成扫码登录)
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
SERVICE_NAME="weixin-nanobot-adapter"
|
|
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
|
|
|
|
echo "📱 安装微信适配器系统服务"
|
|
echo " 项目目录: $PROJECT_DIR"
|
|
echo ""
|
|
|
|
# 检查权限
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "❌ 请使用 sudo 运行此脚本"
|
|
exit 1
|
|
fi
|
|
|
|
# 获取服务器IP
|
|
SERVER_IP=$(curl -s ifconfig.me)
|
|
BRIDGE_URL="http://${SERVER_IP}:5000/chat"
|
|
|
|
echo "📝 创建服务文件..."
|
|
cat > "$SERVICE_FILE" << EOF
|
|
[Unit]
|
|
Description=WeChat-Nanobot Adapter Service
|
|
After=weixin-nanobot-bridge.service
|
|
Wants=weixin-nanobot-bridge.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=ubuntu
|
|
Group=ubuntu
|
|
WorkingDirectory=$PROJECT_DIR
|
|
Environment="HOME=/home/ubuntu"
|
|
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
|
|
Environment="NANOBOT_BRIDGE_URL=$BRIDGE_URL"
|
|
|
|
# 启动命令
|
|
ExecStart=/usr/bin/node $PROJECT_DIR/weixin-bridge.js
|
|
|
|
# 重启策略
|
|
Restart=always
|
|
RestartSec=30
|
|
StartLimitInterval=300s
|
|
StartLimitBurst=5
|
|
|
|
# 日志
|
|
StandardOutput=append:$PROJECT_DIR/logs/weixin-adapter.log
|
|
StandardError=append:$PROJECT_DIR/logs/weixin-adapter-error.log
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
echo "✅ 服务文件已创建: $SERVICE_FILE"
|
|
echo " 桥接地址: $BRIDGE_URL"
|
|
|
|
# 重载 systemd
|
|
systemctl daemon-reload
|
|
|
|
# 启用开机自启
|
|
systemctl enable "$SERVICE_NAME"
|
|
|
|
echo ""
|
|
echo "⚠️ 重要提示:"
|
|
echo " 微信服务需要先完成一次扫码登录才能自动运行"
|
|
echo " 请先手动运行一次: node weixin-bridge.js"
|
|
echo " 完成扫码登录后,再启动此服务"
|
|
echo ""
|
|
echo "管理命令:"
|
|
echo " 启动: sudo systemctl start $SERVICE_NAME"
|
|
echo " 停止: sudo systemctl stop $SERVICE_NAME"
|
|
echo " 重启: sudo systemctl restart $SERVICE_NAME"
|
|
echo " 状态: sudo systemctl status $SERVICE_NAME"
|