Sí, demasiado viejo y aún demasiado duro. Intenté con el método "stat" propuesto anteriormente, pero ¿y si ayer hubiera tocado el directorio de proceso PID? Esto significa que mi proceso de un año se muestra con la marca de tiempo de ayer. No, no es lo que necesito :(
En los más nuevos, es simple:
ps -o etimes -p <PID>
ELAPSED
339521
Tan sencillo como eso. El tiempo está presente en segundos. Haz lo que necesites. Con algunas cajas más antiguas, la situación es más difícil, ya que no hay etimes. Uno podría confiar en:
ps -o etime -p <PID>
ELAPSED
76-03:26:15
que se ven "un poco" raros ya que está en formato dd-hh: mm: ss. No apto para cálculos posteriores. Lo hubiera preferido en segundos, por lo tanto, usé este:
ps -o etime -p <PID> --no-headers | awk -F '(:)|(-)' 'BEGIN{a[4]=1;a[3]=60;a[2]=3600;a[1]=86400;s=0};{for (i=NF;i>=1;i--) s=s+a[i]*$i}END{print s}'
339544
etimes
a mí mismo - tiempo transcurrido en segundos - por lo que es legible por máquina