Giriş
Linux sistemlerinde 'lsof' (list open files), sistemdeki açık dosyaları ve ağ bağlantılarını listelemek için kullanılan en güçlü teşhis araçlarından biridir. Linux'ta hemen hemen her şey bir dosya olarak temsil edildiğinden (soketler, dizinler, borular), lsof sistemin o anki durumuna dair derinlemesine bir bakış sağlar.
Sorun 1: Hangi Süreç Bir Portu Kullanıyor?
Bir servis başlatılamadığında veya 'Address already in use' hatası aldığınızda, portu hangi sürecin işgal ettiğini bulmanız gerekir.
- Terminali açın.
- Aşağıdaki komutu kullanarak 80 numaralı portu dinleyen süreci listeleyin:
- Çıktıda PID (Process ID) sütununu bulun ve gerekirse
kill [PID]komutu ile süreci sonlandırın.
sudo lsof -nP -iTCP:80 -sTCP:LISTENİpucu: -nP bayrakları, adreslerin ve portların sayısal olarak görüntülenmesini sağlar, bu da DNS çözümlemesini atlayarak komutun daha hızlı çalışmasına yardımcı olur.Sorun 2: Silinen Dosyalar Disk Alanını Neden Boşaltmıyor?
Bazen büyük bir log dosyasını silseniz bile disk alanının boşalmadığını görürsünüz. Bunun nedeni, bir sürecin o dosyayı hala açık tutmasıdır.
- Silinmiş ancak hala açık olan dosyaları listelemek için:
- Çıktıda
(deleted)ibaresini gördüğünüz dosyayı kullanan süreci belirleyin. - Söz konusu süreci yeniden başlatarak dosya tanımlayıcısının (file descriptor) serbest kalmasını sağlayın.
sudo lsof +L1Sorun 3: Belirli Bir Dosyayı Hangi Süreç Açtı?
Bir dosyanın kilitli olması veya erişim hatası vermesi durumunda, dosyayı hangi sürecin kullandığını görmek için:
lsof /var/log/syslogÖnemli Filtreleme Seçenekleri
-p [PID]: Belirli bir PID'ye ait tüm açık dosyaları gösterir.-u [kullanıcı]: Belirli bir kullanıcının açtığı tüm dosyaları listeler.-c [komut]: Belirli bir komut ismine sahip süreçleri filtreler.-a: 'AND' mantığı ile birden fazla filtreyi birleştirir.
Uyarı: lsof komutunu kök yetkileriyle (sudo) çalıştırmanız önerilir. Aksi takdirde, yalnızca kendi kullanıcı hesabınızın erişebildiği süreçleri görebilirsiniz.Sonuç
lsof, sistem yöneticileri için vazgeçilmez bir araçtır. Port çakışmalarından dosya sistemi kilitlerine kadar birçok karmaşık sorunu, sistemin o anki 'açık dosya' haritasını çıkararak hızla çözmenize olanak tanır. Daha karmaşık ağ istatistikleri için ss komutu ile birlikte kullanılması önerilir.



