Saya tidak mengerti ouput dari perintah lsof.
Ketika saya menulis
lsof -p PID
Saya mendapatkan 4 baris dan ketika saya menulis
lsof | grep PID
Saya mendapat ratusan baris.
Bukankah seharusnya mengembalikan hasil yang sama?
Terima kasih atas tanggapan Anda. Ini adalah output. Sepertinya ini adalah sub proses atau apa tugas ini artinya?
lsof -p 29076
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied)
java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied)
java 29076 pr txt unknown /proc/29076/exe (readlink: Permission denied)
java 29076 pr NOFD /proc/29076/fd (opendir: Permission denied)
lsof |grep 29076|head -20
java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied)
java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied)
java 29076 pr txt unknown /proc/29076/exe (readlink: Permission denied)
java 29076 pr NOFD /proc/29076/fd (opendir: Permission denied)
java 29076 300 pr cwd unknown /proc/29076/task/300/cwd (readlink: Permission denied)
java 29076 300 pr rtd unknown /proc/29076/task/300/root (readlink: Permission denied)
java 29076 300 pr txt unknown /proc/29076/task/300/exe (readlink: Permission denied)
java 29076 300 pr NOFD /proc/29076/task/300/fd (opendir: Permission denied)
java 29076 329 pr cwd unknown /proc/29076/task/329/cwd (readlink: Permission denied)
java 29076 329 pr rtd unknown /proc/29076/task/329/root (readlink: Permission denied)
java 29076 329 pr txt unknown /proc/29076/task/329/exe (readlink: Permission denied)
java 29076 329 pr NOFD /proc/29076/task/329/fd (opendir: Permission denied)
java 29076 330 pr cwd unknown /proc/29076/task/330/cwd (readlink: Permission denied)
java 29076 330 pr rtd unknown /proc/29076/task/330/root (readlink: Permission denied)
java 29076 330 pr txt unknown /proc/29076/task/330/exe (readlink: Permission denied)
java 29076 330 pr NOFD /proc/29076/task/330/fd (opendir: Permission denied)
java 29076 331 pr cwd unknown /proc/29076/task/331/cwd (readlink: Permission denied)
java 29076 331 pr rtd unknown /proc/29076/task/331/root (readlink: Permission denied)
java 29076 331 pr txt unknown /proc/29076/task/331/exe (readlink: Permission denied)
java 29076 331 pr NOFD /proc/29076/task/331/fd (opendir: Permission denied)
lsof - daftar file yang terbuka, cobalah membaca halaman manual untuk lsof
#man lsof
lsof -p PID
daftar file yang terbuka terkait dengan id proses PID.Dengan tidak adanya opsi apa pun, lsof mencantumkan semua file yang terbuka milik semua proses aktif. ketika Anda melakukannya
lsof | grep PID
, ia mencantumkan semua file terbuka yang dimiliki oleh semua proses aktif dan mengambil nomor PID, yang dapat cocok dengan PID itu sendiri dan juga di mana saja, di mana PID muncul sebagai bagian dari PID lain dan mungkin juga merupakan proses turunan dari PID, dan begitu seterusnya.Karena itu, jika Anda ingin menggunakan
lsof | grep PID
maka Anda harus mencocokkan PID dengan tepat, seperti kecocokan kata lengkaplsof | grep -w PID
, tetapi masih akan menghasilkan lebih banyak baris jika PID memiliki proses anak lainnya.sumber
Saya mencoba ini pada sistem saya, dan kedua perintah menghasilkan daftar yang sama, saya sarankan Anda mencoba kedua perintah secara berurutan beberapa kali, hanya untuk memastikan bahwa keadaan proses stabil. Menurut halaman manual dan output Anda, ini adalah satu-satunya penjelasan yang bisa saya miliki.
sumber
Beberapa versi lsof menyertakan id utas. Ini dapat ditentukan oleh tajuk kolom TID yang terlihat di output. Output semacam itu akan menimbulkan duplikasi entri karena lsof berpotensi menampilkan entri yang digandakan satu untuk setiap utas.
https://support.datastax.com/hc/en-us/articles/209826153-lsof-shows-Cassandra-is-holding-a-large-amount-of-files-open
sumber