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
.