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ı.