#!/bin/bash

# 指定目标目录
TARGET_DIR="$HOME/.kylin-printer-drivers/"

# 第一次尝试优雅地终止（发送SIGTERM）
readarray -t pid_stat_array < <(ps -u "$USER" -o pid,stat=)
for line in "${pid_stat_array[@]}"; do
    read -r pid _ <<< "$line"
    # 获取进程的工作目录
    cwd=$(readlink "/proc/$pid/cwd")
    if [[ "$cwd" == "$TARGET_DIR"* ]]; then  # 检查是否为指定目录或其子目录
        kill -15 $pid &> /dev/null
    fi
done

# 等待一段时间让程序有机会正常关闭
sleep 2

# 强制终止仍未结束的进程（发送SIGKILL）
readarray -t pid_stat_array < <(ps -u "$USER" -o pid,stat=)
for line in "${pid_stat_array[@]}"; do
    read -r pid stat <<< "$line"
    # 获取进程的工作目录
    cwd=$(readlink "/proc/$pid/cwd")
    if [[ "$cwd" == "$TARGET_DIR"* ]]; then
        kill -9 $pid &> /dev/null
    fi
done
