Como "tiempo de actividad" tiene varios significados, aquí hay un comando útil.
ps -eo pid,comm,lstart,etime,time,args
Este comando enumera todos los procesos con varias columnas diferentes relacionadas con el tiempo. Tiene las siguientes columnas:
PID COMMAND STARTED ELAPSED TIME COMMAND
PID
= ID del proceso
primero COMMAND
= solo el nombre del comando sin opciones y sin argumentos
STARTED
= el tiempo absoluto en que se inició el proceso
ELAPSED
= tiempo transcurrido desde que se inició el proceso ( tiempo del reloj de pared ), formato [[dd-] hh:] mm: ss
TIME
= acumulativo Tiempo de CPU, formato "[dd-] hh: mm: ss"
segundo COMMAND
= nuevamente el comando, esta vez con todas sus opciones y argumentos provistos
etimes
a mí mismo - tiempo transcurrido en segundos - por lo que es legible por máquinaSi tiene una versión limitada de la
ps
que se encuentra enbusybox
, puede obtener la hora de inicio del proceso mirando la marca de tiempo de/proc/<PID>
. Por ejemplo, si el pid que desea ver es 55 ...... y luego compararlo con la fecha actual ...
fuente
Creo que puedes correr:
1234 siendo la identificación del proceso.
ejemplo con dos procesos iniciados a la misma hora minuto segundos pero no los mismos milisegundos:
fuente
¿Una cosa tan simple no se responde adecuadamente después de 5 años?
No creo que puedas obtener milisegundos con precisión. p.ej. si ve
man procfs
y ve/proc/$$/stat
cuál tiene el campo 22 como hora de inicio, que está en "tics de reloj", tendría algo más preciso, pero los ticks de reloj no van a una velocidad perfectamente constante (en relación con el "tiempo de reloj de pared") y estar fuera ... durmiendo y ciertas cosas (ntpd supongo) lo compensan. Por ejemplo, en una máquina que ejecuta ntpd, con 8 días de actividad y nunca ha dormido,dmesg -T
tiene el mismo problema (creo ...), y puede verlo aquí:Aquí hay segundos:
fuente
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:
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:
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:
fuente
pidof java
=> ID del proceso para el proceso de Javaetimes=
=> tiempo en segundos y '=' es eliminar el encabezadofuente