#!/bin/bash # SMS Forwarder systemd 服务安装脚本 set -e echo "🔧 配置 SMS Forwarder systemd 服务..." # 获取当前用户和路径 CURRENT_USER=$(whoami) CURRENT_DIR=$(pwd) SERVICE_FILE="sms-forwarder.service" # 检查是否在正确的目录 if [ ! -f "pyproject.toml" ] || [ ! -f "config.yaml" ]; then echo "❌ 请在项目根目录运行此脚本" exit 1 fi # 检查 uv 虚拟环境 if [ ! -d ".venv" ]; then echo "📦 创建虚拟环境..." uv sync fi # 获取虚拟环境路径 VENV_PATH="$CURRENT_DIR/.venv" if [ ! -f "$VENV_PATH/bin/python" ]; then echo "❌ 虚拟环境未找到,请先运行 'uv sync'" exit 1 fi # 创建日志和数据目录 mkdir -p logs data # 更新服务文件中的路径 echo "📝 更新服务文件配置..." sed -i "s|your-username|$CURRENT_USER|g" $SERVICE_FILE sed -i "s|/path/to/notification|$CURRENT_DIR|g" $SERVICE_FILE # 复制服务文件到系统目录 echo "📋 安装 systemd 服务文件..." sudo cp $SERVICE_FILE /etc/systemd/system/ # 重新加载 systemd echo "🔄 重新加载 systemd..." sudo systemctl daemon-reload # 启用服务 echo "✅ 启用 SMS Forwarder 服务..." sudo systemctl enable sms-forwarder # 启动服务 echo "🚀 启动 SMS Forwarder 服务..." sudo systemctl start sms-forwarder # 检查状态 echo "📊 检查服务状态..." sudo systemctl status sms-forwarder --no-pager echo "" echo "🎉 SMS Forwarder 服务安装完成!" echo "" echo "常用命令:" echo " 查看状态: sudo systemctl status sms-forwarder" echo " 查看日志: sudo journalctl -u sms-forwarder -f" echo " 重启服务: sudo systemctl restart sms-forwarder" echo " 停止服务: sudo systemctl stop sms-forwarder" echo " 禁用服务: sudo systemctl disable sms-forwarder" echo "" echo "服务将在系统重启后自动启动。"