ฉันใช้ Bash บน Ubuntu สำหรับ Windows บน Windows 10
ข้อจำกัดความรับผิดชอบ: ฉันค่อนข้างใหม่สำหรับ Windows มีระบบยูนิกซ์ที่ใช้เกือบเฉพาะ
ฉันกำลังดาวน์โหลดรูปภาพขนาด ~ 1 ล้านภาพในกลุ่มที่มีขนาดไม่เกิน 100k โดยเรียกใช้สคริปต์ต่อไปนี้ใน WSL ($ 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 เธรดเพื่อดาวน์โหลดรูปภาพเปลี่ยนชื่อพวกเขาแล้วลบ csv ที่ URL นั้นอ่านออก สองสามครั้งแรกที่สคริปต์เริ่มทำงานเสร็จสมบูรณ์ แต่ทันใดนั้นสคริปต์ก็หยุดทำงานและส่งผลให้เป็น BSOD
ฉันเรียกใช้บนเครื่อง Mac หลายครั้งโดยไม่มีข้อผิดพลาด ฉันต้องย้ายพอร์ตโครงการของฉันไปที่ Windows 10 และต้องการใช้ WSL ตามที่ควรจะสามารถรันสคริปต์ทุบตี
ฉันได้ตรวจสอบตัวแสดงเหตุการณ์เพื่อดูบันทึกข้อผิดพลาด - ดูเหมือนว่าแหล่งที่มาจะเป็น DistributedCOM พร้อมข้อผิดพลาด แต่ฉันไม่สามารถดูว่าเป็นเช่นนั้นได้อย่างไรเพราะมันทำงานได้ดีในสองสามครั้งแรก
การตั้งค่าการอนุญาตเฉพาะแอปพลิเคชันไม่อนุญาตการเปิดใช้งานเฉพาะที่สำหรับแอปพลิเคชันเซิร์ฟเวอร์ COM ที่มี CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} และ APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} ให้กับผู้ใช้ DESKTOP -01 ชื่อผู้ใช้] SID (S-1-5-21-2149831090-3283936149-3974900866-1001) จากที่อยู่ LocalHost (กำลังใช้ LRPC) ที่ทำงานอยู่ในคอนเทนเนอร์แอปพลิเคชัน SID ที่ไม่พร้อมใช้งาน (ไม่พร้อมใช้งาน) สิทธิ์ความปลอดภัยนี้สามารถแก้ไขได้โดยใช้เครื่องมือการจัดการบริการคอมโพเนนต์
ใครบ้างมีความคิดว่าอะไรคือสาเหตุและวิธีแก้ปัญหาสำหรับเรื่องนี้
sleep 5
พยายามที่จะเพิ่มวินาทีบางอย่างในระหว่างคำสั่งตัวอย่างเช่นการใช้งาน