É possível obter um tempo de atividade de um processo do Windows que não seja baseado nas configurações do relógio do sistema?
Uma solução baseada em Linux é algo como:
ps -eo comm,etime
Com algumas pesquisas, tentei algumas coisas no Windows mas não encontrei o que esperava. Por exemplo, usando:
New-TimeSpan -Start (get-process explorer).StartTime
no PowerShell, consegui isto:
Meu problema é que a hora é baseada em uma data de criação, então se as configurações do relógio forem alteradas por qualquer motivo, o resultado mudará assim:
(A propósito, gosto do tempo de atividade negativo)
Também dei uma olhada no wmic e o problema é o mesmo:
WMIC PROCESS GET NAME, CREATIONDATE
Existe um campo ou uma opção para obter informações de tempo de parede como etime?
Obrigado
Responder1
É possível obter um tempo de atividade de um processo do Windows que não seja baseado nas configurações do relógio do sistema?
O Cygwin ps
ignora as alterações na hora atual.
Recua:
- O campo STIME exibe a hora de início no formato hh:mm:ss, portanto você não pode saber há quantos dias ele está em execução.
Exemplo de saída (antes de alterar a data):
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
Exemplo de saída (após alteração da data):
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
O valor de STIME
permanece inalterado -16:51:33
Notas:
16:51:33
é a hora de ontem quando reiniciei pela máquina.- O
STIME
campo exibe a hora de início no formatohh:mm:ss
para que você não saiba há quantos dias ele está em execução.
Cygwin ps está faltando a opção -o para formatar a saída
Cygwin usa um programa ps personalizado que também pode lidar com processos do Windows, mas que não oferece suporte a todas essas opções.
No entanto, procps
suporta -o
.
Desvantagens:
- O campo STIME exibe a hora de início no formato hh:mm:ss, portanto você não pode saber há quantos dias ele está em execução.
- Ele não lida com processos do Windows.