在当前shell执行
dd if=/dev/zero of=/tmp/tmp.test bs=4K count=1000000 oflag=direct
新建shell窗口,执行
watch -n 1 pkill -USR1 -x dd
解释:
watch负责周期性执行一个程序,使用-n可以指定执行的时间间隔。
pkill是根据名称或其他属性来查询进程或给进程发信号的。
dd进程的USR1信号:在标准错误输出中输出I/O数据,并继续复制。也就输出了进度
另外,pkill 使用-x参数为精确匹配(match exactly)等同于使用正则^dd$
当然也可使用kill、killall 命令向dd进程发送USR1信号
或者直接写shell脚本循环代替watch命令
while (ps -ef | grep " dd " | grep -v grep | awk '{print $2}' | while read pid; do kill -USR1 $pid; done); do sleep 5; done