knowledge/auto_cleaner.sh

38 lines
941 B
Bash

#!/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