Що саме означає команда 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', він дозволяє надрукувати статистику вводу-виводу на стандартну помилку, а потім відновити копіювання.

$ 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.