Verifique o tempo de execução de processos longos no Linux

Para verificar quantos segundos se passaram desde o início de um processo, você pode usar este pequeno script de shell:

#!/bin/bash
init
=`stat -t /proc/$1 | awk '{print $14}'`
curr
=`date +%s`
seconds
=`echo $curr - $init| bc`
name
=`cat /proc/$1/cmdline`
echo $name $seconds

salve-o em um arquivo chamado sincetimee dê permissões para seu usuário executá-lo e colocá-lo em seu $ path. Então, o comando:

sincetime <pid>

retornará o nome do processo com o pid fornecido e sua idade em segundos.

Além disso, você pode combiná-lo com grep e ps e ter isto:

#!/bin/bash
pidlist
=`ps ax | grep -i -E $1 | grep -v grep | awk '{print $1}' | grep -v PID | xargs echo`
for pid in $pidlist; do
sincetime $pid

done

Se você colocar isso em um arquivo chamado “greptime” com permissão x, em seu caminho e blablabla, você pode executá-lo assim:

greptime <pattern>

para obter todos os processos cujos nomes correspondem a <padrão> (uma string ou regexp) e suas idades em segundos.