4 votes

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

Je suis en train de chercher à comprendre quand une commande que j'ai entrée a arrêté de s'exécuter, par exemple

sudo apt-get update

Je veux des informations comme :

début d'exécution à : 12:00
fin d'exécution à : 12:15

2voto

Sergiy Kolodyazhnyy Points 97292

Le point clé qui doit être compris à propos des processus est que leurs métadonnées ne sont pas enregistrées par défaut. Cependant, vous pouvez obtenir certaines informations pendant l'exécution du processus.

Comme cela a été indiqué dans la question connexe sur StackOverflow dans la réponse de wlk, l'heure de démarrage peut être obtenue via le drapeau -o pour ps et le spécificateur de format ltime :

ps -eo pid,lstart,cmd

Cependant, l'heure d'arrêt n'est généralement pas suivie par le système, donc c'est quelque chose que vous devrez suivre vous-même. En connaissant le PID d'un processus, vous pourriez vérifier périodiquement l'existence de ce PID et afficher l'horodatage lorsque le processus disparaît

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

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

1voto

NPsoft Points 138

Que diriez-vous d'écrire notre propre script bash?

#!/bin/bash

start_time=$(date +"%T")

$*                    

finish_time=$(date +"%T")

echo "début de l'exécution à : $start_time"
echo "fin de l'exécution à : $finish_time"

Enregistrez le script sous logscript.sh

Rendez-le exécutable en utilisant chmod +x logscript.sh

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

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

Capture d'écran du résultat

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X