¿Es posible obtener un tiempo de actividad de un proceso de Windows que no se base en la configuración del reloj del sistema?
Una solución basada en Linux es algo como:
ps -eo comm,etime
Con algunas investigaciones, probé algunas cosas en Windows pero no encontré lo que esperaba. Por ejemplo, usando:
New-TimeSpan -Start (get-process explorer).StartTime
en PowerShell, obtuve esto:
Mi problema es que la hora se basa en una fecha de creación, por lo que si se cambia la configuración del reloj por algún motivo, el resultado cambiará así:
(Por cierto, me gusta el tiempo de actividad negativo)
También eché un vistazo a wmic y el problema es el mismo:
WMIC PROCESS GET NAME, CREATIONDATE
¿Existe un campo o una opción para obtener información de tiempo de pared como etime?
Gracias
Respuesta1
¿Es posible obtener un tiempo de actividad de un proceso de Windows que no se base en la configuración del reloj del sistema?
Cygwin ps
ignora los cambios en la hora actual.
Retirarse:
- El campo STIME muestra la hora de inicio en el formato hh:mm:ss, por lo que no puede saber cuántos días ha estado funcionando.
Salida de ejemplo (antes de cambiar la fecha):
DavidPostill@Hal ~
$ date
Fri, Jul 17, 2015 9:59:11 AM
DavidPostill@Hal ~
$ ps -e -W -p 2612
PID PPID PGID WINPID TTY UID STIME COMMAND
2612 0 0 2612 ? 0 16:51:33 C:\Windows\explorer.exe
Salida de ejemplo (después de cambiar la fecha):
DavidPostill@Hal ~
$ date
Fri, Jul 17, 2015 11:59:29 AM
DavidPostill@Hal ~
$ ps -e -W -p 2612
PID PPID PGID WINPID TTY UID STIME COMMAND
2612 0 0 2612 ? 0 16:51:33 C:\Windows\explorer.exe
El valor de STIME
no cambia -16:51:33
Notas:
16:51:33
Es la hora de ayer cuando reinicié la máquina.- El
STIME
campo muestra la hora de inicio en el formatohh:mm:ss
para que no pueda saber cuántos días ha estado funcionando.
A Cygwin ps le falta la opción -o para formatear la salida
Cygwin utiliza un programa ps personalizado que también puede manejar procesos de Windows pero que no admite todas esas opciones.
Sin embargo, procps
apoya -o
.
Desventajas:
- El campo STIME muestra la hora de inicio en el formato hh:mm:ss, por lo que no puede saber cuántos días ha estado funcionando.
- No maneja procesos de Windows.