Sobes.tech
Middle

Linux'ta bir programın şu anda hangi dosyalarla çalıştığını nasıl öğrenebilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Açık dosyaları listelemek için lsof aracını kullanın.

# Tüm açık dosyaların listesini göstermek için temel `lsof` kullanımı
lsof

Belirli bir süreç tarafından açık dosyaların listesini almak için (PID ile):

# PID 1234 olan süreç tarafından açık dosyaları listele
lsof -p 1234

Belirli bir komut tarafından açık dosyaların listesini almak için (isimle):

# "nginx" adındaki tüm süreçler için açık dosyaları listele
lsof -c nginx

Belirli bir kullanıcı tarafından açık dosyaların listesini almak için:

# "user1" kullanıcısı tarafından açık dosyaları listele
lsof -u user1

lsof için ek bayraklar:

Bayrak Açıklama
-i Ağ bağlantılarını (soketleri) göster
-n IP adreslerini ana bilgisayar adlarına dönüştürme
-P Bağlantı noktalarını hizmet adlarına dönüştürme
-r [N] lsof'u her N saniyede yeniden başlat

Belirli bir dosyayı hangi işlemin kullandığını belirlemek için örnek:

# /var/log/syslog dosyasını hangi işlem kullanıyor?
lsof /var/log/syslog

lsof çıktısı aşağıdaki sütunları içerir:

  • COMMAND: İşlemi başlatan komutun adı.
  • PID: İşlem kimliği.
  • TID: İşlem kimliği (varsa).
  • USER: İşlemi başlatan kullanıcı adı.
  • FD: Dosya tanıtıcı.
  • TYPE: Dosya türü (DIR, REG, FIFO, CHR, BLK, SOCK, vb.).
  • DEVICE: Aygıt kimliği.
  • SIZE/OFF: Dosya boyutu veya ofset.
  • NODE: inode numarası.
  • NAME: Dosya adı veya ağ adresi.