lsof and fuser

Diyelim ki bir USB sürücüsü taktınız ve bazı dosyalar üzerinde çalıştınız, işiniz bittikten sonra USB cihazını unmount etmeye çalıştığınızda “Device or Resource Busy” hatası alıyorsunuz. USB sürücüsündeki hangi dosyaların hâlâ kullanımda olduğunu nasıl bulursunuz? Bunun için kullanabileceğiniz iki araç vardır:

lsof

Dosyaların sadece metin dosyaları, görüntüler vb. olmadığını, sistemdeki her şey—diskler, pipe’lar, network socket’ler, cihazlar vb.—olduğunu unutmayın. Bir process tarafından nelerin kullanımda olduğunu görmek için lsof komutunu (“list open files”ın kısaltması) kullanabilirsiniz, bu size tüm açık dosyaların ve bunlarla ilişkili process’in bir listesini gösterecektir.

pete@icebox:~$ lsof .

COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
lxsession 1491 pete  cwd    DIR    8,6     4096  131 .
update-no 1796 pete  cwd    DIR    8,6     4096  131 .
nm-applet 1804 pete  cwd    DIR    8,6     4096  131 .
indicator 1809 pete  cwd    DIR    8,6     4096  131 .
xterm     2205 pete  cwd    DIR    8,6     4096  131 .
bash      2207 pete  cwd    DIR    8,6     4096  131 .
lsof      5914 pete  cwd    DIR    8,6     4096  131 .
lsof      5915 pete  cwd    DIR    8,6     4096  131 .

Şimdi hangi process’lerin cihazı/dosyayı açık tuttuğunu görebiliyorum. USB örneğimizde, bu process’leri öldürerek bu inatçı sürücüyü unmount edebiliriz.

fuser

Bir process’i takip etmenin bir diğer yolu fuser komutudur (“file user”ın kısaltması), bu komut dosyayı kullanan process veya file user hakkında bilgi gösterecektir.

pete@icebox:~$ fuser -v .

                     USER        PID ACCESS COMMAND
/home/pete:         pete  1491 ..c.. lxsession
                     pete  1796 ..c.. update-notifier
                     pete  1804 ..c.. nm-applet
                     pete  1809 ..c.. indicator-power
                     pete  2205 ..c.. xterm
                     pete  2207 ..c.. bash

/home/pete dizinimizi şu anda hangi process’lerin kullandığını görebiliyoruz. lsof ve fuser araçları çok benzerdir, bu araçlara aşina olun ve bir dosya veya process’i takip etmeniz gerektiğinde bir dahaki sefere kullanmayı deneyin.

Last updated