Tentukan file apa yang sedang diakses oleh suatu proses

9

Bagaimana saya mengetahui semua file yang diakses oleh proses tertentu?

Saya menggunakan Ubuntu 9.04.

juan2raid
sumber

Jawaban:

11

lsof akan mendaftar file yang terbuka dan ID proses yang terkait. Ini mendaftar semua jika tidak ada opsi yang diberikan.

Ada opsi,, -puntuk membuat daftar file yang terbuka untuk satu proses. Jadi untuk proses dengan PID 6714 ini akan mencantumkan file yang dibuka oleh proses itu:

    lsof -p 6714

Untuk daftar, hanya file biasa grep yang dapat digunakan untuk memfilter keluaran lsof:

    lsof -p 6714 | grep REG

Jika perlu lebih kuat daripada dengan grep maka -Fopsi dapat digunakan, tetapi kemudian menjadi lebih kompleks. Dari halaman manual lsof :

Ketika opsi -F ditentukan, lsof menghasilkan output yang cocok untuk diproses oleh program lain - misalnya, skrip awk atau Perl, atau program C.

Itu tergantung pada kebutuhan Anda.

Peter Mortensen
sumber
1
Saya ingin menambahkan '-b' ke lsof, ini akan sedikit lebih cepat. Juga, saya menambahkan 2> / dev / null sebelum pipa untuk grep.
kbyrd