#!/bin/bash # from http://blog.ksplice.com/2011/01/solving-problems-with-proc/ # amended by MFONTANI at CPAN.org if [[ -z "$1" ]]; then echo Need a PID exit 1 fi if [[ -z "$2" ]]; then echo "Need a FD number for PID $1" echo "Choose from:" ls -la /proc/$1/fd/ exit 1 fi fd=/proc/$1/fd/$2 fdinfo=/proc/$1/fdinfo/$2 name=$(readlink $fd) size=$(wc -c $fd | awk '{print $1}') while [ -e $fd ]; do progress=$(cat $fdinfo | grep ^pos | awk '{print $2}') echo $((100*$progress / $size)) sleep 1 done | dialog --gauge "Progress reading $name" 7 100