Ctl + tを押したときにのみddが出力されるのはなぜですか? [コピー]

Ctl + tを押したときにのみddが出力されるのはなぜですか? [コピー]

これはOSXの場合です。これを端末で実行すると

scottcarlson$ sudo dd if=Downloads/CentOS-7-x86_64-Everything-1511.iso of=/dev/disk2 2> Desktop/out.txt

それではこれは別のものです。

tail -f Desktop/out.txt

Ctlt最初の端末を押したときにのみログを更新しますdd。性格のせいでしょうかdd

デバイスに正確に書き込む方法はわかりませんが、プロセスにしばらく休んでログに書き込むように要求するのはあまりにも無理ですか?

ベストアンサー1

最初の端末で dd で Ctlt を押したときにのみログを更新します。 ddの性質のせいでしょうか?

はい。その本質は、dd与えられた信号が受信されると現在の状態を出力することです。ほとんどのオペレーティングシステムでは、このシグナルはSIGUSR1標準シグナルですが、OS Xでは非標準シグナルを使用しますSIGINFO。また、OS Xには、すべてのオペレーティングシステムから送信されるように、キーの組み合わせをtty使用して特定の信号を送信できるドライバ設定があります。CtrlTCtrlCSIGQUIT

デバイスに正確に書き込む方法はわかりませんが、プロセスにしばらく休んでログに書き込むように要求するのはあまりにも無理ですか?

ショートカットを使用して正確にそのタスクを実行するように依頼しています。定期的に自動更新が必要な場合は、次の単純なシェルループを実行するのを防ぐ方法はありません。

while kill -INFO $(pgrep dd); do sleep 5; done

これはpgrepOS Xで利用可能であると仮定します。それ以外の場合は、コマンドを選択してpidそれを2番目の引数ddとして使用します。kill

おすすめ記事