How do I know if dd is still working?

You can send dd a certain signal using the kill command to make it output its current status. The signal is INFO on BSD systems (including OSX) and USR1 on Linux. In your case:

kill -INFO $PID

You can find the process id ($PID above) with the ps command; or see pgrep and pkill alternatives on mac os x for more convenient methods.

More simply, as AntoineG points out in his answer, you can type ctrl-T at the shell running dd to send it the INFO signal.

As an example on Linux, you could make all active dd processes output status like this:

pkill -USR1 -x dd

After outputting its status, dd will continue coping.


Under OS X (didn't try on Linux), you can simply type Ctrl+T in the terminal running dd. It will print the same output as kill -INFO $PID, plus the CPU usage:

load: 1.40  cmd: dd 34536 uninterruptible 3.49u 64.58s
5020305+0 records in
5020304+0 records out
2570395648 bytes transferred in 4284.349974 secs (599950 bytes/sec)

I found out about it reading this thread, and trying to open a new tab in my terminal but mixing +T with Ctrl+T.


For dd, you can send a signal. For other commands that are reading or writing to a file, you can watch their position in the file with lsof.

lsof -o -p1234    # where 1234 is the process ID of the command
lsof -o /path/to/file

If you plan in advance, pipe the data through pv.