SE seu programa my_exec não exibir a tela, ou qualquer arquivo de log, etc. (por exemplo, inclinar a contagem wchar com saída para stdout, stderr, etc.), por que não apenas olhar diretamente para a contagem de wchar do linux:
grep wchar /proc/${exec_pid}/io
Mais uma vez, o wchar incluirá TODOS os caracteres gravados nos arquivos, e tudo é um arquivo no UNIX, incluindo / dev / null, mas se o programa for silencioso, exceto os arquivos de dados, você obterá uma precisão ou proximidade (+ -1 byte) contagem precisa.
Se houver uma saída do acima mencionado além dos arquivos de dados, será difícil diferenciar de outros arquivos sem poder adicionar contadores diretamente ao código do my_exec (que é o que eu faria se eu tivesse meu_exec fonte, de qualquer maneira - io para um único contador seria mínimo).
Essa contagem lhe dará total desde o início do PID. Cálculo desde a última verificação é uma questão de armazenar algum valor visto pela última vez em um arquivo temporário ou variável, alguma matemática simples, etc. Um script rápido e sujo, sem verificação de erros, concisão, parâmetros extravagantes, etc.:
#!/bin/bash
# one param, PID of running process.
COUNTFILE="/tmp/counter"
WAIT="2"
if [ -r "$COUNTFILE" ]; then
LCOUNT="'cat $COUNTFILE'"
else
LCOUNT=0
fi
cd /proc/$1
while true; do
MYSTAMP="'date'"
TCOUNT="'grep wchar io |cut -d':' -f2'"
NCOUNT="'expr $TCOUNT - $LCOUNT'"
printf "$MYSTAMP: %9s bytes total, %9s bytes new\n" $TCOUNT $NCOUNT
LCOUNT="$TCOUNT"
echo "$LCOUNT" >$COUNTFILE
sleep $WAIT
done
# don't remove count file
exit
Espero que ajude.