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
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
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
Vérifiez ceci site pour des formats d'affichage de l'heure intéressants.