Skip to main content
Glama

MemOS-MCP

by qinshu1109
Apache 2.0
3
  • Linux
  • Apple
install_service.sh6.55 kB
#!/bin/bash # MemOS systemd服务安装脚本 # 用于安装、配置和管理MemOS系统服务 set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 日志函数 log_info() { echo -e "${BLUE}ℹ️ $1${NC}" } log_success() { echo -e "${GREEN}✅ $1${NC}" } log_warning() { echo -e "${YELLOW}⚠️ $1${NC}" } log_error() { echo -e "${RED}❌ $1${NC}" } # 检查权限 check_permissions() { if [[ $EUID -eq 0 ]]; then log_error "请不要使用root权限运行此脚本" log_info "使用普通用户权限运行,需要sudo时会自动提示" exit 1 fi } # 检查依赖 check_dependencies() { log_info "检查系统依赖..." # 检查systemctl if ! command -v systemctl &> /dev/null; then log_error "systemctl 未找到,请确保运行在systemd系统上" exit 1 fi # 检查MemOS文件 if [ ! -f "memos.service" ]; then log_error "memos.service 文件不存在" exit 1 fi if [ ! -f "memos_mcp_server.py" ]; then log_error "memos_mcp_server.py 文件不存在" exit 1 fi if [ ! -d "memos_venv" ]; then log_error "虚拟环境 memos_venv 不存在" exit 1 fi log_success "依赖检查通过" } # 安装服务 install_service() { log_info "安装MemOS systemd服务..." # 复制服务文件到系统目录 sudo cp memos.service /etc/systemd/system/ log_success "服务文件已复制到 /etc/systemd/system/" # 重新加载systemd配置 sudo systemctl daemon-reload log_success "systemd配置已重新加载" # 启用服务(开机自启动) sudo systemctl enable memos.service log_success "MemOS服务已设置为开机自启动" } # 启动服务 start_service() { log_info "启动MemOS服务..." # 清理可能的锁文件 find . -name "*.lock" -delete 2>/dev/null || true find . -name "memos.pid" -delete 2>/dev/null || true # 启动服务 sudo systemctl start memos.service # 等待服务启动 sleep 3 # 检查服务状态 if sudo systemctl is-active --quiet memos.service; then log_success "MemOS服务启动成功" else log_error "MemOS服务启动失败" log_info "查看详细日志: sudo journalctl -u memos.service -f" exit 1 fi } # 停止服务 stop_service() { log_info "停止MemOS服务..." sudo systemctl stop memos.service log_success "MemOS服务已停止" } # 重启服务 restart_service() { log_info "重启MemOS服务..." sudo systemctl restart memos.service # 等待服务启动 sleep 3 # 检查服务状态 if sudo systemctl is-active --quiet memos.service; then log_success "MemOS服务重启成功" else log_error "MemOS服务重启失败" log_info "查看详细日志: sudo journalctl -u memos.service -f" exit 1 fi } # 查看服务状态 status_service() { log_info "MemOS服务状态:" sudo systemctl status memos.service --no-pager } # 查看服务日志 logs_service() { log_info "MemOS服务日志 (按Ctrl+C退出):" sudo journalctl -u memos.service -f } # 卸载服务 uninstall_service() { log_warning "卸载MemOS服务..." # 停止服务 sudo systemctl stop memos.service 2>/dev/null || true # 禁用服务 sudo systemctl disable memos.service 2>/dev/null || true # 删除服务文件 sudo rm -f /etc/systemd/system/memos.service # 重新加载systemd配置 sudo systemctl daemon-reload log_success "MemOS服务已卸载" } # 测试服务重启 test_restart() { log_info "测试服务自动重启功能..." # 获取服务主进程PID MAIN_PID=$(sudo systemctl show memos.service --property=MainPID --value) if [ "$MAIN_PID" = "0" ] || [ -z "$MAIN_PID" ]; then log_error "服务未运行,无法测试重启" exit 1 fi log_info "当前主进程PID: $MAIN_PID" # 杀死主进程模拟异常 log_info "模拟进程异常..." sudo kill -9 "$MAIN_PID" # 等待systemd重启服务 log_info "等待systemd自动重启服务..." sleep 15 # 检查服务是否重新启动 if sudo systemctl is-active --quiet memos.service; then NEW_PID=$(sudo systemctl show memos.service --property=MainPID --value) log_success "服务自动重启成功,新PID: $NEW_PID" else log_error "服务自动重启失败" exit 1 fi } # 显示帮助 show_help() { echo "MemOS systemd服务管理脚本" echo "" echo "用法: $0 [命令]" echo "" echo "命令:" echo " install 安装并启用MemOS服务" echo " start 启动MemOS服务" echo " stop 停止MemOS服务" echo " restart 重启MemOS服务" echo " status 查看服务状态" echo " logs 查看服务日志" echo " test 测试自动重启功能" echo " uninstall 卸载MemOS服务" echo " help 显示此帮助信息" echo "" echo "示例:" echo " $0 install # 安装并启动服务" echo " $0 logs # 查看实时日志" echo " $0 test # 测试自动重启" } # 主函数 main() { echo "🔧 MemOS systemd服务管理" echo "=========================" # 进入MemOS目录 cd "$(dirname "$0")" # 检查权限 check_permissions # 解析命令 COMMAND="${1:-help}" case "$COMMAND" in "install") check_dependencies install_service start_service status_service ;; "start") start_service ;; "stop") stop_service ;; "restart") restart_service ;; "status") status_service ;; "logs") logs_service ;; "test") test_restart ;; "uninstall") uninstall_service ;; "help"|"-h"|"--help") show_help ;; *) log_error "未知命令: $COMMAND" show_help exit 1 ;; esac } # 信号处理 trap 'log_warning "收到中断信号"; exit 130' INT TERM # 运行主函数 main "$@"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/qinshu1109/memos-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server