import psutil


def PID_取父ID(pid: int | str) -> int:
    """
    根据进程 PID 获取其父进程 PID。

    功能说明：
        - 当 PID 不存在、无权限访问、参数无效或发生异常时，返回 0。

    Args:
        pid (int | str): 要查询的进程 PID。

    Returns:
        int: 成功返回父进程 PID；失败返回 0。
    """
    try:
        pid = int(pid)
        return psutil.Process(pid).ppid()
    except Exception:
        return 0
