Réponses:
Il serait utile que vous soyez beaucoup plus précis sur ce que vous essayez de faire.
Voici un exemple extrêmement simpliste:
while true
do
clear
date
sleep 1
done
vous pouvez utiliser la commande watch (1) pour exécuter votre script à intervalles réguliers:
watch -n 1 myscript.sh
Cela s'exécutera myscript.sh
toutes les 1 secondes en effaçant l'écran entre chaque exécution et avec un horodatage dans le coin. Vous pouvez utiliser l' -d
option et elle mettra même en évidence les différences de sortie par cycle.
watch
. Pourriez-vous être plus précis? Quel OS?
La plupart de ces données sont généralement exposées dans les primitives du système de fichiers virtuel / proc. Chaque processus a une entrée dans / proc dans un répertoire appelé PID. Donc / proc / 5437 aurait les primitives pour le processus 5437. En lisant les primitives et en analysant correctement, vous vous rapprochez de ce que fait le haut.
Top fonctionne en fait en appelant des appels de fonctions spécifiques qui extraient ces informations directement du noyau au lieu de les extraire des fichiers. Pour faire la même chose depuis bash, vous devez soit l'extraire du système de fichiers virtuel / proc, soit l'extraire d'autres appels tels que to ps
.
Quant au temps réel, ce n'est pas tout à fait faisable au niveau des détails fournis par top. Vous pouvez découper le temps suffisamment fin pour qu'il semble être en temps réel, mais vous obtiendrez toujours des tranches de temps.
Euh, au cas où vous regardez la top
sortie pendant plus longtemps, et pas seulement pour vérifier si un programme fonctionne bien, je suggère d'utiliser htop .
Il vous donne beaucoup d'informations en temps réel et est plus facile à contrôler et à gérer.
Vous pouvez modifier la disposition de la sortie, comme les graphiques à barres et les colonnes.
top
utilise Curses et lit le /proc
système de fichiers
/proc
. Une autre façon d'obtenir les informations est sysctl (8) / sysctl (3).
curses
interface ... mais je pense que c'est plus une question de programmation et appartient à SO