Eu quero saber quando um processo em execução será finalizado. Como posso assistir?

14

Gostaria de saber qualquer comando que eu possa executar para saber a hora final de um processo.

Já iniciei o processo e conheço seu PID, mas quero saber se existe algum comando que possa me informar a que horas ele terminou.

Obrigado pela sua ajuda.

    
por user2504890 27.06.2013 / 00:15

3 respostas

11

Execute isto:

while kill -0 <PID>; do sleep 1; done; echo "Process finished at $(date +"%F %T")."

Ou você pode fazer um script bash. wait-for-death.sh :

#!/bin/bash

if ! kill -0 ; then
    echo "Process  doesn't exist."
    exit 1
fi

while kill -0 ; do
    sleep 1
done

echo "Process  finished at $(date +"%F %T")."

Em seguida, conceda a permissão de execução:

chmod +x wait-for-death.sh

e executá-lo passando o processo 'PID:

./wait-for-death.sh <PID>
    
por Eric Carvalho 27.06.2013 / 01:49
2

Se você quiser evitar colisões de PID, use at :

job_id=$(at now <<< 'sleep 10' 2>&1 | awk 'END {print }')
while at -l | grep -q "^${job_id}\s"
do
    sleep 1
done
echo "Process finished at $(date)"
    
por l0b0 27.06.2013 / 09:55
0

Talvez o comando time se ajuste à sua necessidade:

time [options] command [arguments...]

Exemplo:

time /local/usr/bin/myProcess arg1 arg2

Quando o processo terminar, time mostrará algumas estatísticas, como o tempo gasto para concluir o processo (em segundos, eu acho).

Verifique a página de manual ou dê uma olhada nesta página de manual .

    
por roko 04.07.2013 / 15:18