Jawaban:
Coba watch
perintah:
watch -n 10 ls -l /proc/$$/fd
Menonton itu bagus.
Anda bisa menggunakan old school while loop:
while :
do
ls -l /proc/$$/fd
sleep 10
done
watch
ada dalam paket procps pada sistem berbasis debian dan rpm procps pada sistem turunan RedHat.
Jika Anda ingin melihat setiap file saat dibuka, Anda dapat memfilternya dengan strace
. Sebagai contoh:
strace -p _pid_of_app_ -e trace=open,close
-y
dan -f
jika Anda mencoba men-debug sesuatu yang berjalan di shell. Cukup berikan PID shell dan -f
ikuti setiap garpu.
Anda bisa menggabungkan lsof
dan watch
.
Misalnya watch "lsof -p 1234"
akan memberi Anda daftar semua file yang terbuka dari pid 1234 setiap 2 detik. Anda dapat mengubah beberapa parameter untuk memenuhi kebutuhan Anda.
-r
opsi untuk lsof
. Karena itu saya biasa watch
mengeksekusi lsof
setiap dua detik.
Saya membuat file bash di mana saya menulis output dari perintah ke file. File dihasilkan berdasarkan tanggal saat ini. Di sini saya menghitung jumlah file terbuka.
#!/bin/bash
while :
do
cd /proc/<PID>/fd
today=$(date +"%m-%d-%Y")
filename="/tmp/${today}.txt"
ls -l | wc -l >> "${filename}"
sleep 10
done