Estoy usando un ps
comando como parte de un ejercicio para identificar procesos que se ejecutan por más tiempo que un umbral determinado.
Estoy usando la siguiente plantilla para obtener el tiempo transcurrido para un comando de proceso conocido:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
Noto que con procesos de ejecución corta, el valor de etime (tiempo transcurrido) toma el formato minutes:seconds
y a partir de esto puedo determinar fácilmente cuánto tiempo ha estado ejecutándose un proceso.
Para procesos de ejecución muy largos (días largos), no entiendo el formato.
Tengo un proceso de servidor MySQL que se htop
muestra funcionando durante 126 horas.
Ejecutar ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'
me da un valor de 9-03:35:32
.
Mi mejor suposición es que esto significa 9 algo, 3 horas, 35 minutos, 32 segundos. No puedo entender cuáles son las unidades para el 9.
El proceso en cuestión ha estado funcionando 126 horas, aproximadamente 5,25 días. Esto sugiere que el 9 en la salida anterior no representa días. No pueden ser medio día ya que (9 * 12) horas + 3 horas + 35 minutos + 32 segundos son menos de 5 días.
¿Cómo interpreto el valor del tiempo transcurrido que veo para los procesos de larga ejecución? ¿Qué unidades acompañan al 9 en la salida anterior?
ps
muestra uno u otro según las opciones que pase.etimes
lugar deetime
y compare los resultados.Respuestas:
De acuerdo con el estándar :
Entonces, el 9 significa días, lo creas o no. ¿Podría estar malinterpretando la salida de htop? ¿Qué dice top (que tiene un formato de hora
minutes:seconds
)? ¿Estás seguro de que el campo que estás viendo en htop es equivalente a etime? (por ejemplo, ¿podría significar 126 minutos de tiempo de CPU ?)fuente