Dd is een typisch Unix-programma: zolang er niets misloopt, geeft het geen uitvoer, en pas wanneer het zijn taak volbracht heeft, krijg je te zien wat het programma heeft gedaan. Dat maakt dd voor interactief gebruik niet altijd even handig. Nu bestaan er wel programma's die je een statusupdate kunnen geven van dd, zoals pipe viewer (pv), maar dan moet je eraan denken dat je pv gebruikt in combinatie met dd (bijvoorbeeld dd if=/dev/zero | pv | dd of=/tmp/test bs=1M count=1k). Daar heb je niets meer aan als je dit vergeten bent en dd al bezig is. Een andere optie is om dd_rescue te gebruiken, dat wel een tussentijdse uitvoer geeft, maar dit is niet altijd mogelijk of wenselijk.

Gelukkig is er een trucje om toch nog op te vragen hoever dd is met het schrijven, en hiervoor hoef je bij het starten van het dd-commando helemaal niets speciaals te doen. Dd luistert onder Linux immers naar het signaal USR1 (onder FreeBSD naar het signaal INFO) en geeft dan een tussentijdse uitvoer in hetzelfde formaat als wat je normaal op het einde te zien krijgt. Veronderstel bijvoorbeeld dat je het volgende commando uitgevoerd hebt om een Gigabyte aan gegevens weg te schrijven:

dd if=/dev/zero of=/tmp/test bs=1M count=1k

Dit duurt echter nogal lang, en voor je het commando afbreekt omdat je denkt dat er iets mis is, zou je willen weten hoever dd staat. Dat kan door in een andere terminal het signaal USR1 met het programma pkill te zenden naar alle processen die 'dd' heten:

pkill -USR1 ^dd$

Als je periodiek een uitvoer van dd wilt krijgen, dan kun je deze opdracht combineren met het commando watch (in FreeBSD: cmdwatch). Bijvoorbeeld:

watch -n5 pkill -USR1 ^dd$

Nu krijg je om de 5 seconden in de terminal van dd een tussentijdse uitvoer te zien.

Bron: Techworld