En *nix, el comando ps permite listar y manejar procesos pero no se suele conocer la forma directa de visualizar el tiempo que lleva un proceso en ejecución. En realidad se puede sacar con la salida por defecto a partir del valor de la columna STIME, que indica el momento en el que se inició (START TIME) pero hay que «calcular» el tiempo.
Para calcular el tiempo en ejecución de un proceso podemos utilizar el parámetro etime (elapsed time), el cual muestra en formato de fecha el tiempo que el proceso que le indiquemos lleva ejecutándose:
1 |
etime - elapsed time since the process was started, in the form [[dd-]hh:]mm:ss. |
Lo combinaremos con otro parámetro (-p pidlist) en el que le diremos el PID a revisar y el formato (-o):
1 2 3 4 5 6 7 |
ps -p PID -o etime= ps -p 4283 -o etime= 06:18 ps -p 31403 -o etime= (91 días en ejcución con 08:09:33 hrs.) 91-08:09:33 |
También podemos especificar el «output» que queramos para ps especificando los argumentos separados por comas después del «-o», un ejemplo:
1 2 3 4 5 6 7 8 9 10 |
$ ps -eo pid,comm,args,user,etime --sort user | more PID COMMAND COMMAND USER ELAPSED 2969 fctsslvpndaemon /crypted/Proyectos/ 4294967294 02:39:36 1929 gnome-keyring-d /usr/bin/gnome-keyring-daem 1000 03:04:27 1948 sh /bin/sh /etc/xdg/xfce4/xini 1000 03:04:27 1977 ssh-agent /usr/bin/ssh-agent /usr/bin 1000 03:04:26 1980 dbus-launch /usr/bin/dbus-launch --exit 1000 03:04:26 1981 dbus-daemon //bin/dbus-daemon --fork -- 1000 03:04:26 1989 xfconfd /usr/lib/xfce4/xfconf/xfcon 1000 03:04:26 1995 xscreensaver xscreensaver -no-splash 1000 03:04:26 |
Sabiendo esto podéis jugar creando alias de ps con la salida que necesitéis u crear las combinaciones que estiméis oportunas.