#!/bin/bash

log_file="auto_cleaner.log"
lock_dir="${1:-./}"
lock_file="${lock_dir}auto_build.lock"
timeout=600 # 超时时间,单位为秒

# 记录日志函数
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$log_file"
}

# 拼接锁文件路径
lock_file="${lock_dir}auto_build.lock"

# 判断锁文件是否存在
if [ -f "$lock_file" ]; then
    # 获取锁文件中的进程ID
    pid=$(cat "$lock_file")

    # 判断系统中是否有该进程
    if ps -p "$pid" >/dev/null; then
        # 判断进程名称是否包含auto_build.sh
        process_name=$(ps -o comm= -p "$pid")
        if [[ "$process_name" == *"auto_build.sh"* ]]; then
            log "进程[$pid]异常,释放$lock_file"
            rm "$lock_file"
        else
            log "进程[$pid]验证正常"
        fi
    else
        log "进程[$pid]异常,释放$lock_file"
        rm "$lock_file"
    fi
else
    log "未发现$lock_file"
fi