In che modo il comando "top" mostra i risultati in tempo reale?


9

Come posso scrivere uno script di shell che mostra i risultati in tempo reale?

Qualcosa come il topcomando che aggiorna i risultati dopo alcuni intervalli di tempo fissi.

testo alternativo


6
probabilmente usando cursesun'interfaccia ... ma penso che questa sia più una domanda di programmazione e appartiene a SO
xenoterracide,

Risposte:


7

Sarebbe utile se tu fossi molto più specifico su ciò che stai cercando di fare.

Ecco un esempio estremamente semplicistico:

while true
do
    clear
    date
    sleep 1
done

13

puoi usare il comando watch (1) per eseguire lo script a intervalli regolari:

watch -n 1 myscript.sh

Questo verrà eseguito myscript.shogni 1 secondo cancellando lo schermo tra ogni corsa e con un timestamp nell'angolo. È possibile utilizzare l' -dopzione e evidenzierà anche le differenze nell'output per esecuzione.


Stavo solo pensando a come rispondere usando watch.
Kevin M,

Non ho watch. Potresti essere più specifico? Quale sistema operativo?
Chris Page

2

La maggior parte di questi dati è generalmente esposta nelle primitive del file system virtuale / proc. Ogni processo ha una voce in / proc in una directory chiamata PID. Quindi / proc / 5437 avrebbe le basi per il processo 5437. Leggere le primitive lì e analizzarle in modo appropriato sarebbe ancora vicino a ciò che fa la cima.

Top funziona effettivamente chiamando chiamate di funzione specifiche che estraggono queste informazioni direttamente dal kernel invece di estrarle dai file. Per fare lo stesso da bash dovresti estrarlo dal file system virtuale / proc o estrarlo da altre chiamate come ps.

Per quanto riguarda il tempo reale, ciò non è del tutto fattibile a livello di dettaglio fornito da top. Puoi dividere il tempo abbastanza bene da sembrare in tempo reale, ma otterrai comunque intervalli di tempo.


2

Ehm, nel caso tu stia guardando l' topoutput per un tempo più lungo, e non solo per verificare se un programma sta andando bene, ti suggerisco di usare htop .

Ti dà molte informazioni in tempo reale ed è più facile da controllare e gestire.

È possibile modificare il layout dell'output, ad esempio grafici a barre e colonne.


Credo che stia chiedendo come scrivere un'app che esegua il polling a intervalli regolari non specificamente su top o htop.
Chris,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.