คำสั่ง pkill -USR1 -n -x dd หมายความว่าอย่างไร


12

ฉันใช้ddเพื่อถ่ายโอนข้อมูลภาพดิสก์ไปยังการ์ด sd บน BeagleBone ของฉัน

การใช้pkill -USR1 -n -x ddการเชื่อมต่อ ssh กับ BeagleBone นี้ทำให้ฉันได้รับการอัพเดตสถานะของกระบวนการถ่ายโอนซึ่งยอดเยี่ยมมาก ฉันแค่อยากรู้ว่ามันใช้งานได้จริงอย่างไรเพื่อที่ฉันจะสามารถใช้มันได้อย่างมีประสิทธิภาพในอนาคต

หลังจากอ่านman pkillแล้วมันยังไม่ได้อธิบายอย่างสมบูรณ์ถึงวิธีการpkill -USR1 -n -x ddทำงานเพื่อให้การอัปเดตสถานะนี้มีประโยชน์มากกับฉัน

คำตอบ:


15

ddนี่คือการทำงานที่เฉพาะเจาะจงเพื่อ จากddหน้าคน:

การส่งสัญญาณ USR1 ไปยังกระบวนการ 'dd' ที่ทำงานอยู่ทำให้พิมพ์สถิติ I / O ไปที่ข้อผิดพลาดมาตรฐานจากนั้นทำการคัดลอกต่อ

$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid

18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied,  34.6279  seconds, 271 MB/s

-USR1บอกpkillให้ส่งUSR1สัญญาณ -nและ-xเป็นเพียงตัวกรองเพื่อให้แน่ใจว่าคุณส่งไปยังกระบวนการที่ถูกต้อง ( -nส่งไปยังกระบวนการใหม่ล่าสุดและ-xหมายความว่ากระบวนการจะต้องมีชื่ออย่างแน่นอนdd)


2
นี่เป็นเพียงรุ่น GNU ของ 'dd' (AFAIK) SIGUSR1 ถึง 'dd' สำหรับระบบปฏิบัติการอื่น (เช่น AIX, HP-UX & Solaris) จะยุติกระบวนการตามค่าเริ่มต้น
DarkHeart

@DarkHeart ใช้ SIGINFO (หรือ INFO) บน osx (อาจเหมือนกันใน bsd)
akhan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.