Quando o script foi iniciado?

2

O que eu quero é,

-bash-3.2$ ps -aef | grep 29137
jeeadm    9794  1190  0 09:22 pts/2    00:00:00 grep 29137
jeeadm   29137     1  0 Sep02 ?        00:00:21 Java

Segunda Linha, entrada da Quinta Coluna, como na saída é apenas mostrar a data, De qualquer forma para obter o carimbo de tempo completo?

    
por Keyshov Borate 04.09.2014 / 11:26

3 respostas

4

Você pode usar o campo lstart para isso:

# ps -aefO lstart | head       
  PID                  STARTED S TTY          TIME COMMAND
31379 Sat Aug  2 21:31:11 2014 S pts/3    00:00:00 zsh
31399 Sat Aug  2 21:31:11 2014 S pts/3    00:00:00  \_ vim
27313 Sat Aug 30 13:19:27 2014 S pts/4    00:00:20 zsh
27193 Sat Aug 30 13:18:11 2014 S pts/2    00:00:19 zsh
25196 Wed Sep  3 22:37:57 2014 S pts/16   00:00:00 zsh
25231 Wed Sep  3 22:38:00 2014 S pts/16   00:00:00  \_ sudo
25241 Wed Sep  3 22:38:04 2014 S pts/16   00:00:02      \_ zsh
24642 Sat Aug 30 12:50:48 2014 S pts/0    00:00:20 zsh
23366 Thu Sep  4 08:47:30 2014 S pts/18   00:00:00 zsh
    
por 04.09.2014 / 14:49
1

tente

ps -p 11517 -o stime

depois de um dia (meia-noite) ps mostrará startday, em vez de hora,

depois de um mês, você terá seg e ano,

depois de um ano, você terá início ano.

    
por 04.09.2014 / 11:29
1

Para descobrir o timestamp quando o processo começou, você precisa calcular um pouco. Use este comando:

echo "$(date +%s) - $(ps -o etime --no-headers -p $pid | \
awk -F'[:-]' '{print ($4+($3*60)+($2*60*60)+($1*24*60*60))}')" | bc -l

O valor de $pid deve ser o ID do processo.

Explicação:

  • echo "$(date +%s) : imprima o timestamp de agora
  • ps -o etime --no-headers -p $pid : imprime o tempo decorrido do processo sem cabeçalhos
  • awk -F'[:-]' : defina o delimitador de awk para : e - porque a hora será impressa no seguinte formato: dd-hh:mm:ss
  • '{print ($4+($3*60)+($2*60*60)+($1*24*60*60))}' calcula os valores em segundos
  • bc -l : e canaliza a saída para bc ( timestamp_now - elapsed_seconds = timespamp_at_process_start )

Por exemplo, eu testei com o processo init de um sistema que funciona por 42 dias. A saída foi 1406124152 , que é o 07 / 23 / 14 @ 2:02:31pm UTC .

    
por 04.09.2014 / 11:56