Sobes.tech
Middle

Linux-da bir proqramın hazırda hansı fayllarla işlədiyini necə öyrənmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Açıq faylları siyahıya almaq üçün lsof vasitəsindən istifadə edin.

# `lsof`-un əsas istifadəsi, bütün açıq faylların siyahısını göstərmək
lsof

Xüsusi bir proses tərəfindən açıq faylların siyahısını əldə etmək (PID ilə):

# PID 1234 olan proses üçün açıq faylların siyahısını göstər
lsof -p 1234

Xüsusi bir əməliyyat tərəfindən açıq faylların siyahısını əldə etmək (ad ilə):

# "nginx" adında bütün proseslər üçün açıq faylların siyahısını göstər
lsof -c nginx

Xüsusi bir istifadəçi tərəfindən açıq faylların siyahısını əldə etmək:

# "user1" istifadəçisi üçün açıq faylların siyahısını göstər
lsof -u user1

lsof üçün əlavə bayraqlar:

Bayraq Təsviri
-i Şəbəkə əlaqələrini (soketləri) göstərir
-n IP ünvanlarını host adlarına çevirmir
-P Portları xidmət adlarına çevirmir
-r [N] lsof-u hər N saniyədə yenidən başlatır

Xüsusi bir faylın hansı proses tərəfindən istifadə olunduğunu müəyyən etmək üçün nümunə:

# `/var/log/syslog` faylını hansı proses istifadə edir?
lsof /var/log/syslog

lsof-un çıxışı aşağıdakı sütunları əhatə edir:

  • COMMAND: Prosesin başladığı əmrin adı.
  • PID: Proses identifikatoru.
  • TID: İplik identifikatoru (əgər mövcuddursa).
  • USER: Prosesə başlatmış istifadəçi adı.
  • FD: Fayl deskriptoru.
  • TYPE: Fayl növü (DIR, REG, FIFO, CHR, BLK, SOCK və s.).
  • DEVICE: Cihaz identifikatoru.
  • SIZE/OFF: Faylın ölçüsü və ya ofset.
  • NODE: inode nömrəsi.
  • NAME: Fayl adı və ya şəbəkə ünvanı.