38 lines
941 B
Bash
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
|