Como registrar o tempo de atividade de um processo e reinicia

1

Eu sei que posso verificar o tempo de atividade de um processo com o seguinte:

ps -o etime= -p "PID"

onde PID = pid number.

Gostaria de escrever em um log quando esse processo terminar e incluir o tempo de atividade. O tempo exato que sai seria bom, mas não estritamente necessário. Eu tenho um script que automaticamente reinicia, mas eu estou olhando para aumentar sua estabilidade. Nesse caso, o processo é ffmpeg. Estou executando um fluxo de largura de banda muito baixo a partir de uma fonte instável, e o processo freqüentemente falha intermitentemente.

Eu sinto que se eu pudesse fazer o log por um dia ou dois, eu poderia tentar configurações diferentes para ver se eu posso estender o tempo de atividade para um limite aceitável.

Obrigado pela sua valiosa percepção!

    
por Jason 06.10.2018 / 16:39

1 resposta

0

ps -eo pid,comm,lstart,etime,time,args

Este comando lista todos os processos com várias colunas diferentes relacionadas ao tempo. canalize-o para grep ffmpeg para descobrir o seu processo de interesse.

A saída do comando anterior tem as seguintes colunas:

PID COMMAND                          STARTED     ELAPSED     TIME COMMAND

de acordo com o ps man

PID = Process ID
first COMMAND = only the command name without options and without arguments
STARTED = the absolute time the process was started
ELAPSED = elapsed time since the process was started (wall clock time), format [[dd-]hh:]mm:ss TIME = cumulative CPU time, "[dd-]hh:mm:ss" format
second COMMAND = again the command, this time with all its provided options and arguments
    
por 06.10.2018 / 18:15