Sobes.tech
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.