Jawaban:
Coba watchperintah:
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
watchada 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
-ydan -fjika Anda mencoba men-debug sesuatu yang berjalan di shell. Cukup berikan PID shell dan -fikuti setiap garpu.
Anda bisa menggabungkan lsofdan 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.
-ropsi untuk lsof. Karena itu saya biasa watchmengeksekusi lsofsetiap 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