我在 Windows 10 上的 Ubuntu for Windows 中使用 Bash。
免责声明:我对 Windows 还比较陌生。几乎只使用过 Unix 系统
我正在通过在 WSL 中执行以下脚本下载大约 100 万张图像,每组最多 100k 张,($1 是下载图像的目标文件夹):
#!/bin/bash
SECONDS=0
cat "$1/pics.csv" | xargs -n 1 -P 10 wget -q -P "$1/"
echo "Elapsed $SECONDS seconds"
echo "Adding .jpg extentions"
mmv "$1/*_small" "$1/#1.jpg"
find "$1" -name pics.csv -type f -delete
该进程最多会生成 8 个线程来下载图像、重命名图像,然后删除读取 URL 的 csv。脚本启动的前几次都完成了,但随后突然停止并导致 BSOD。
我在 Mac 上运行过多次,没有失败。我不得不将我的项目移植到 Windows 10,并想使用 WSL,因为它应该能够运行 bash 脚本。
我已经检查了事件查看器中的错误日志 - 错误来源似乎是 DistributedCOM,但我不明白这是怎么回事,因为前几次运行都很好。
应用程序特定的权限设置未向用户 DESKTOP-E01P1DA[用户名] SID (S-1-5-21-2149831090-3283936149-3974900866-1001) 授予 CLSID 为 {D63B10C5-BB46-4990-A94F-E40B9D520160}、APPID 为 {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} 的 COM 服务器应用程序的本地激活权限,该权限来自地址 LocalHost (使用 LRPC),运行于应用程序容器 Unavailable SID (Unavailable)。可以使用组件服务管理工具修改此安全权限。
有人知道造成这种情况的原因和解决办法吗?