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.