コマンドpkill -USR1 -n -x ddは正確にはどういう意味ですか?


12

ddBeagleBoneのsdカードへのディスクイメージのネットワーク転送に使用しています。

pkill -USR1 -n -x ddこのBeagleBoneへのssh接続で使用すると、転送プロセスのステータスが更新されます。これは素晴らしいことです。それが実際にどのように機能するか知りたいので、将来的にそれを効果的に使用できます。

読んman pkillだ後でも、pkill -USR1 -n -x ddこの非常に便利なステータスの更新をどのように機能させているのかはまだ完全には説明されていませんでした。

回答:


15

これはに固有の動作ddです。ddmanページから:

実行中の「dd」プロセスにUSR1シグナルを送信すると、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)にのみ存在します。他のOS(AIX、HP-UX、Solarisなど)の場合、SIGUSR1を「dd」にすると、デフォルトでプロセスが終了します。
DarkHeart 2014年

@DarkHeartは、osxでSIGINFO(またはINFO)を使用します(おそらくbsdでも同じです)
akhan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.