Sobes.tech
Middle

როგორ გავიგოთ, რომელი ფაილებით მუშაობს პროგრამა Linux-ში ამჟამად?

sobes.tech AI

პასუხი AI-სგან

lsof ინსტრუმენტის გამოყენება (გახსნილი ფაილების სია).

# `lsof`-ის ძირითადი გამოყენება, ყველა გახსნილი ფაილის სიის ჩვენება
lsof

საკონკრეტო პროცესის მიერ გახსნილი ფაილების სიის მიღება (PID-ის მიხედვით):

# გამოიტანეთ გახსნილი ფაილების სია PID 1234 პროცესისთვის
lsof -p 1234

საკონკრეტო ბრძანების მიერ გახსნილი ფაილების სიის მიღება (სახელის მიხედვით):

# გამოიტანეთ გახსნილი ფაილების სია ყველა პროცესისთვის სახელით "nginx"
lsof -c nginx

საკონკრეტო მომხმარებლის მიერ გახსნილი ფაილების სიის მიღება:

# გამოიტანეთ გახსნილი ფაილების სია მომხმარებლის "user1"თვის
lsof -u user1

lsof-ის დამატებითი ფლაგები:

ფლაგი აღწერა
-i გამოაქვს ქსელური კავშირები (სოკეტები)
-n IP მისამართებს არ გარდაქმნის ჰოსტნეიმებს
-P პორტებს არ გარდაქმნის სერვისის სახელებად
-r [N] lsof-ს ყოველ N წამში ხელახლა იწყებს

მაგალითი კონკრეტული ფაილის გამოყენების პროცესის განსაზღვრა:

# რა პროცესი იყენებს ფაილს /var/log/syslog?
lsof /var/log/syslog

lsof-ის გამოყვანა მოიცავს შემდეგ სვეტებს:

  • COMMAND: ბრძანების სახელი, რომელმაც დაიწყო პროცესი.
  • PID: პროცესის იდენტიფიკატორი.
  • TID: თრედის იდენტიფიკატორი (თუ არის).
  • USER: მომხმარებლის სახელი, რომელმაც დაიწყო პროცესი.
  • FD: ფაილის დესკრიპტორი.
  • TYPE: ფაილის ტიპი (DIR, REG, FIFO, CHR, BLK, SOCK, და ა.შ.).
  • DEVICE: მოწყობილობის იდენტიფიკატორი.
  • SIZE/OFF: ფაილის ზომა ან გადახრა.
  • NODE: inode ნომერი.
  • NAME: ფაილის სახელი ან ქსელური მისამართი.