Mclaw Hook环境变量求助

Mclaw Hook环境变量求助
Mclaw Hook环境变量求助

首先感谢佬的教程:https://linux.do/t/topic/2320228

hook后还是走移动的token计费怎么办,已重启了,能帮忙看看吗

执行如下:

1. 在 /.openclaw/hooks/ 下建一个目录,放 HOOK.md(监听 gateway:startup)和 handler.ts

2. handler.ts 里用 execSync 调一个 这个hooks 脚本,hook脚本从AI空间-Mclaw空间下载,名字为mclaw-env.sh,要确定下载到再执行下一步操作,检查sh脚本有没有问题,为了实现目标可以更新脚本

3. shell 脚本里用 nohup setsid 命令 & 启动进程(保证不被回收)

4. openclaw hooks enable 名字 启用

同时启动一个监视脚本,监视服务状态,代替龙虾定时任务

mclaw-env.sh:

#!/usr/bin/env bash
set -e

# ===== 修改成你的真实值 =====
export XIAO_TIAN_LLM_API_BASE="https://api.hlcode.qzz.io/v1"
export XIAO_TIAN_LLM_KEY="***"
# ==========================


APP_DIR="$HOME/.openclaw/workspace/app"

LOCK_FILE="$APP_DIR/openclaw-gateway-restart.lock"
STAMP_FILE="$APP_DIR/openclaw-gateway-restart.stamp"
LOG_FILE="$APP_DIR/openclaw-gateway-restart.log"

mkdir -p "$APP_DIR"

# 避免并发运行
exec 9>"$LOCK_FILE"
if ! flock -n 9; then
  echo "$(date '+%F %T') hook already running, exit" >> "$LOG_FILE"
  exit 0
fi

# 避免重启 gateway 后再次触发 hook 造成循环
# 120 秒内只允许执行一次
if [ -f "$STAMP_FILE" ]; then
  now="$(date +%s)"
  last="$(cat "$STAMP_FILE" 2>/dev/null || echo 0)"
  if [ $((now - last)) -lt 120 ]; then
    echo "$(date '+%F %T') recently restarted, skip" >> "$LOG_FILE"
    exit 0
  fi
fi

date +%s > "$STAMP_FILE"

echo "$(date '+%F %T') restarting openclaw gateway..." >> "$LOG_FILE"

pkill -f openclaw-gateway || true

sleep 1

nohup node /app/openclaw.mjs gateway --allow-unconfigured >> "$LOG_FILE" 2>&1 &

echo "$(date '+%F %T') gateway started, pid=$!" >> "$LOG_FILE"

exit 0

image

image
image

2 个帖子 - 1 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文