Bagaimana perintah "atas" menampilkan hasil langsung?


9

Bagaimana saya bisa menulis skrip shell yang menunjukkan hasil secara real time?

Sesuatu seperti topperintah yang memperbarui hasil setelah beberapa interval waktu yang tetap.

teks alternatif


6
mungkin menggunakan cursesantarmuka ... tapi saya pikir ini lebih merupakan pertanyaan pemrograman dan milik SO
xenoterracide

Jawaban:



13

Anda dapat menggunakan perintah arloji (1) untuk menjalankan skrip Anda secara berkala:

watch -n 1 myscript.sh

Ini akan berjalan myscript.shsetiap 1 detik, membersihkan layar di antara setiap proses dan dengan cap waktu di sudut. Anda dapat menggunakan -dopsi dan bahkan akan menyoroti perbedaan dalam output per run.


Saya hanya berpikir bagaimana menjawabnya menggunakan arloji.
Kevin M

Saya tidak punya watch. Bisakah kamu lebih spesifik? OS apa?
Chris Page

2

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.


2

Eh, kalau-kalau Anda melihat topoutput 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.


Saya percaya dia bertanya bagaimana cara menulis aplikasi yang melakukan jajak pendapat secara berkala bukan tentang top atau htop secara khusus.
Chris

1

topmenggunakan Kutukan dan membaca /procsistem file


1
Kecuali pada sistem yang tidak memiliki /proc. Cara lain untuk mendapatkan informasi adalah sysctl (8) / sysctl (3).
Chris Page
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.