novel-doomsday-resurgence/monitor_inkos.sh
唐天洛 5dc8c00de0 feat(sync): 固化小说内容到Git仓库
📚 小说内容:
- 《末日重生-开局囤货十亿物资》33章
- 完整的状态文件、记忆索引、钩子系统

🛠️ 系统配置:
- 版本控制管理系统
- 自动化脚本系统
- 质量监控系统

🧠 固化记忆:
- 长期记忆文件
- 系统配置文档
- 恢复流程指南

💾 数据安全:
- 本地备份系统
- Git版本控制
- 远程同步机制

同步时间: 2026-03-30 16:25:35
系统状态: inkos正常运行中 (PID: 1433309)
创作进度: 第33章《油粮》创作中
2026-03-30 16:25:35 +08:00

132 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
# 监控 inkos 守护进程脚本
# 作者:番茄小说创作助手
# 功能:每小时检查 inkos 状态,如果停止则修复并重启
LOG_FILE="/tmp/inkos-monitor.log"
DAEMON_LOG="/tmp/inkos-daemon.log"
PROJECT_DIR="/root/.openclaw/workspace/tomato-novel"
# 记录日志
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}
# 检查 inkos 守护进程是否在运行
check_inkos_daemon() {
if pgrep -f "inkos up" > /dev/null; then
log "✅ inkos 守护进程正在运行"
return 0
else
log "❌ inkos 守护进程已停止"
return 1
fi
}
# 检查 inkos 项目状态
check_inkos_status() {
cd "$PROJECT_DIR" 2>/dev/null || {
log "错误:无法进入项目目录 $PROJECT_DIR"
return 1
}
# 检查书籍状态
BOOKS=$(inkos book list 2>/dev/null)
if [ $? -eq 0 ]; then
log "📚 书籍状态:"
echo "$BOOKS" | while IFS= read -r line; do
log " $line"
done
else
log "⚠️ 无法获取书籍列表"
fi
# 检查章节数量
if [ -d "books" ]; then
for book_dir in books/*/; do
if [ -d "${book_dir}chapters" ]; then
CHAPTER_COUNT=$(find "${book_dir}chapters" -name "*.md" -o -name "*.json" 2>/dev/null | wc -l)
BOOK_NAME=$(basename "$book_dir")
log " 书籍 '$BOOK_NAME' 有 $CHAPTER_COUNT 个章节"
fi
done
fi
}
# 重启 inkos 守护进程
restart_inkos_daemon() {
log "🔄 正在重启 inkos 守护进程..."
# 停止所有 inkos 进程
pkill -f "inkos up" 2>/dev/null
sleep 2
# 启动守护进程
cd "$PROJECT_DIR" && nohup inkos up > "$DAEMON_LOG" 2>&1 &
sleep 5
if check_inkos_daemon; then
log "✅ inkos 守护进程重启成功"
else
log "❌ inkos 守护进程重启失败"
# 尝试修复配置
log "🔧 尝试修复配置..."
fix_inkos_config
# 再次尝试启动
cd "$PROJECT_DIR" && nohup inkos up > "$DAEMON_LOG" 2>&1 &
sleep 5
if check_inkos_daemon; then
log "✅ 修复后 inkos 守护进程启动成功"
else
log "❌ 修复后 inkos 守护进程仍无法启动"
fi
fi
}
# 修复 inkos 配置
fix_inkos_config() {
log "🔧 检查并修复 inkos 配置..."
# 检查 API 配置
if [ ! -f "$PROJECT_DIR/.env" ]; then
log " 创建缺失的 .env 文件"
cat > "$PROJECT_DIR/.env" << EOF
# LLM Configuration
INKOS_LLM_PROVIDER=custom
INKOS_LLM_BASE_URL=https://ark.cn-beijing.volces.com/api/coding/v3
INKOS_LLM_API_KEY=63589785-b399-47dd-8423-d2433938f169
INKOS_LLM_MODEL=deepseek-v3.2
EOF
fi
# 检查项目完整性
if [ ! -d "$PROJECT_DIR/books" ]; then
log " 项目目录不完整,尝试修复..."
mkdir -p "$PROJECT_DIR/books"
fi
}
# 主函数
main() {
log "="*50
log "开始监控 inkos..."
# 检查守护进程
if ! check_inkos_daemon; then
log "⚠️ inkos 守护进程已停止,正在尝试重启..."
restart_inkos_daemon
else
log "✅ inkos 守护进程运行正常"
fi
# 检查项目状态
check_inkos_status
log "监控完成"
log "="*50
echo ""
}
# 执行主函数
main