Alat yang paling berguna adalah lsof . Ini menunjukkan file apa yang digunakan oleh proses apa. Jika /media/KINGSTON
adalah titik pemasangan (nama perangkat juga akan berfungsi), perintah berikut menunjukkan semua file yang digunakan pada titik pemasangan ini:
lsof /media/KINGSTON
Jika Anda menjalankan perintah ini sebagai pengguna biasa, itu hanya akan menunjukkan proses Anda sendiri¹. Jalankan sudo lsof /media/KINGSTON
untuk melihat semua proses pengguna.
Output dari lsof
terlihat seperti ini:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
zsh4 31421 gilles cwd DIR 8,1 4096 130498 /var/tmp
zsh4 31421 gilles txt REG 8,1 550804 821292 /bin/zsh4
zsh4 31421 gilles mem REG 8,1 55176 821326 /usr/lib/zsh/4.3.10/zsh/complist.so
zsh4 31421 gilles 12r REG 8,1 175224 822276 /usr/share/zsh/functions/Completion.zwc
The COMMAND
kolom menunjukkan nama program dieksekusi dan PID
kolom menunjukkan proses ID. The NAME
kolom menunjukkan nama file; Anda mungkin melihat (deleted)
apakah file itu dihapus saat terbuka (ketika file dihapus, itu tidak lagi memiliki nama, tetapi masih ada sampai proses terakhir menggunakannya menutup file). USER
harus jelas. Kolom lain tidak penting di sini kecuali mungkin FD
, yang menunjukkan bagaimana file digunakan oleh proses:
cwd
: direktori kerja saat ini
txt
: program executable²
mem
: file yang dipetakan memori (di sini, anggap sebagai file terbuka)
- a number: file terbuka aktual; huruf berikutnya menunjukkan mode pembuka, seperti
r
untuk membaca dan w
menulis
Tidak ada cara mekanis untuk menemukan jendela tempat file dibuka (ini sebenarnya tidak bermakna secara teknis: jika suatu proses memiliki beberapa jendela, file tidak secara khusus dikaitkan dengan satu jendela atau lainnya), atau bahkan tidak ada cara sederhana untuk mengidentifikasi jendela proses (dan tentu saja suatu proses tidak harus memiliki jendela apa pun). Tetapi biasanya nama perintah dan nama file sudah cukup untuk menemukan pelaku dan menutup file dengan benar.
Jika Anda tidak dapat menutup file dan hanya ingin mengakhiri semuanya, Anda dapat mematikan prosesnya dengan kill 31421
(di mana 31421
ID prosesnya) atau kill -HUP 31421
("menutup telepon"). Jika pembunuhan polos tidak melakukan trik, membunuh dengan prasangka ekstrem: kill -KILL 31421
.
Ada GUI untuk lsof, glsof , tetapi belum cukup siap untuk prime time, dan belum dikemas untuk Ubuntu sejauh ini.
¹
Lsof dapat mencantumkan beberapa informasi tentang proses pengguna lain, tetapi tidak mendeteksi titik pemasangan jadi tidak akan mencantumkannya jika Anda menetapkan titik pemasangan.
²
Kode yang dapat dieksekusi sering disebut teks dalam diskusi format yang dapat dieksekusi.