Jawaban:
Ini akan membantu jika Anda jauh lebih spesifik tentang apa yang Anda coba lakukan.
Ini adalah contoh yang sangat sederhana:
while true
do
clear
date
sleep 1
done
Anda dapat menggunakan perintah arloji (1) untuk menjalankan skrip Anda secara berkala:
watch -n 1 myscript.sh
Ini akan berjalan myscript.sh
setiap 1 detik, membersihkan layar di antara setiap proses dan dengan cap waktu di sudut. Anda dapat menggunakan -d
opsi dan bahkan akan menyoroti perbedaan dalam output per run.
watch
. Bisakah kamu lebih spesifik? OS apa?
Sebagian besar dari data itu umumnya diekspos di / proc virtual file-system virtual. Setiap proses memiliki entri dalam / proc dalam direktori yang disebut PID. Jadi / proc / 5437 akan memiliki primitif untuk proses 5437. Membaca primitif di sana dan menguraikannya dengan tepat akan membuat Anda lebih dekat dengan apa yang dilakukan top.
Top sebenarnya bekerja dengan memanggil panggilan fungsi tertentu yang mengekstrak informasi ini langsung dari kernel alih-alih menariknya dari file. Untuk melakukan hal yang sama dari bash Anda harus menariknya dari sistem file virtual / proc, atau mengekstraknya dari panggilan lain seperti ke ps
.
Sedangkan untuk real-time, itu tidak bisa dilakukan pada tingkat detail yang disediakan top. Anda dapat mengiris waktu dengan cukup baik sehingga tampak real-time, tetapi Anda masih akan mendapatkan irisan waktu.
Eh, kalau-kalau Anda melihat top
output untuk waktu yang lebih lama, dan tidak hanya untuk memeriksa apakah suatu program baik-baik saja, saya sarankan menggunakan htop .
Ini memberi Anda banyak informasi waktu nyata dan lebih mudah untuk mengontrol dan mengelola.
Anda dapat mengubah tata letak output, seperti grafik batang dan kolom.
top
menggunakan Kutukan dan membaca /proc
sistem file
/proc
. Cara lain untuk mendapatkan informasi adalah sysctl (8) / sysctl (3).
curses
antarmuka ... tapi saya pikir ini lebih merupakan pertanyaan pemrograman dan milik SO