web-dev-qa-db-fra.com

Comment vérifier quand un processus s'est arrêté?

J'essaie de comprendre quand une commande que j'ai entrée a cessé de s'exécuter, par exemple

Sudo apt-get update

Je veux des informations comme:

started execution at : 12:00
finished execution at : 12:15
2
Tat Mush

Le point clé à comprendre sur les processus est que leurs métadonnées ne sont pas consignées par défaut. Vous pouvez cependant obtenir certaines informations pendant l'exécution du processus.

Comme indiqué dans la question liée question de StackOverflow dans réponse de wlk , l'heure de début peut être obtenue via le drapeau -o à ps et ltime spécificateur de format:

ps -eo pid,lstart,cmd

Toutefois, le système ne surveille généralement pas les temps d'arrêt. C'est donc quelque chose que vous devrez suivre vous-même. En connaissant le PID d'un processus, vous pouvez rechercher l'existence de ce PID et faire écho à l'horodatage lorsqu'il disparaît

while kill -s 0 $pid ; do : ; sleep 0.25 ; done && date

Voir aussi: https://stackoverflow.com/a/5207048/3701431

1
Sergiy Kolodyazhnyy

Pourquoi ne pas écrire notre propre script bash?

#!/bin/bash

start_time=$(date +"%T")

$*                    

finish_time=$(date +"%T")

echo "started execution at : $start_time"
echo "finished execution at : $finish_time"

Enregistrez le script sous logscript.sh

Le rendre exécutable en utilisant chmod +x logscript.sh

Vous pouvez exécuter 'commande' en utilisant ./logscript.sh command

Par exemple, ./logscript.sh Sudo apt-get update

Screenshot of the result

Vérifiez ceci site pour des formats d'affichage de l'heure intéressants.

1
NPsoft