Middle
Linuxda dastur hozirda qaysi fayllar bilan ishlayotganini qanday bilish mumkin?
sobes.tech AI
AIdan javob
lsof utilitasini ishlatish (ochiq fayllarni ro'yxatga olish).
# `lsof` ning asosiy ishlatilishi, barcha ochiq fayllar ro'yxatini chiqarish
lsof
Ma'lum bir jarayon tomonidan ochiq fayllar ro'yxatini olish (PID bo'yicha):
# PID 1234 bo'lgan jarayon uchun ochiq fayllar ro'yxatini chiqarish
lsof -p 1234
Ma'lum bir buyruq tomonidan ochiq fayllar ro'yxatini olish (nom bilan):
# "nginx" nomli barcha jarayonlar uchun ochiq fayllar ro'yxatini chiqarish
lsof -c nginx
Ma'lum bir foydalanuvchi tomonidan ochiq fayllar ro'yxatini olish:
# "user1" foydalanuvchisi uchun ochiq fayllar ro'yxatini chiqarish
lsof -u user1
lsof uchun qo'shimcha bayroqlar:
| Bayroq | Tavsifi |
|---|---|
-i |
Tarmoq ulanishlarini (socketlarni) ko'rsatadi |
-n |
IP manzillarini host nomlariga aylantirmaydi |
-P |
Portlarni xizmat nomlariga aylantirmaydi |
-r [N] |
lsof ni har N sekundda qayta ishga tushiradi |
Ma'lum bir faylni qaysi jarayon ishlatayotganini aniqlash uchun misol:
# `/var/log/syslog` faylini qaysi jarayon ishlatayotgan?
lsof /var/log/syslog
lsof chiqishi quyidagi ustunlarni o'z ichiga oladi:
- COMMAND: Jarayonni boshlagan buyruq nomi.
- PID: Jarayon identifikatori.
- TID: Thread identifikatori (agar mavjud bo'lsa).
- USER: Jarayonni boshlagan foydalanuvchi nomi.
- FD: Fayl descriptor.
- TYPE: Fayl turi (DIR, REG, FIFO, CHR, BLK, SOCK, va boshqalar).
- DEVICE: Qurilma identifikatori.
- SIZE/OFF: Fayl hajmi yoki ofset.
- NODE: inode raqami.
- NAME: Fayl nomi yoki tarmoq manzili.