Files
sms_forwarder/scripts/setup-systemd.sh

72 lines
1.8 KiB
Bash
Executable File

#!/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 "服务将在系统重启后自动启动。"