Lệnh pkill -USR1 -n -x dd có nghĩa chính xác là gì?


12

Tôi đang sử dụng ddđể thực hiện chuyển mạng hình ảnh đĩa sang thẻ sd trên BeagleBone của mình.

Sử dụng pkill -USR1 -n -x ddtrong kết nối ssh với BeagleBone này cho tôi cập nhật trạng thái của quá trình chuyển, thật tuyệt vời. Tôi chỉ tò mò làm thế nào nó thực sự hoạt động để tôi có thể sử dụng nó một cách hiệu quả trong tương lai.

Sau khi đọc man pkillnó vẫn không hoàn toàn giải thích cách thức hoạt pkill -USR1 -n -x ddđộng để cung cấp cho tôi bản cập nhật trạng thái rất hữu ích này.

Câu trả lời:


15

Đây là hành vi cụ thể để dd. Từ ddtrang người đàn ông:

Gửi tín hiệu USR1 đến quy trình 'dd' đang chạy khiến nó in các số liệu thống kê I / O thành lỗi tiêu chuẩn và sau đó tiếp tục sao chép.

$ 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

-USR1nói pkillđể gửi USR1tín hiệu. -n-xchỉ là các bộ lọc để đảm bảo bạn gửi đúng quy trình ( -ngửi đến quy trình mới nhất và -xcó nghĩa là quy trình phải được đặt tên chính xác dd)


2
Điều này chỉ có trong phiên bản GNU của 'dd' (AFAIK). SIGUSR1 thành 'dd' cho các HĐH khác (ví dụ AIX, HP-UX & Solaris) sẽ chấm dứt quá trình theo mặc định.
DarkHeart

@DarkHeart sử dụng SIGINFO (hoặc INFO) trên osx (có thể giống nhau trên bsd)
akhan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.