Sobes.tech
Middle

Kā uzzināt, ar kuriem failiem pašlaik strādā programma Linux?

sobes.tech AI

Atbilde no AI

Izmantojot utilītu lsof (atvērošo failu saraksts).

# Pamata `lsof` lietošana, lai parādītu visus atvērtos failus
lsof

Lai iegūtu atvērtu failu sarakstu noteiktam procesam (pēc PID):

# Parādīt atvērtos failus procesam ar PID 1234
lsof -p 1234

Lai iegūtu atvērtu failu sarakstu ar noteiktu komandu (pēc nosaukuma):

# Parādīt atvērtos failus visiem procesiem ar nosaukumu "nginx"
lsof -c nginx

Lai iegūtu atvērtu failu sarakstu ar noteiktu lietotāju:

# Parādīt atvērtos failus lietotājam "user1"
lsof -u user1

Papildu lsof karodziņi:

Karodziņš Apraksts
-i Parādīt tīkla savienojumu (socket) sarakstu
-n Neveikt IP adresu pārvēršanu hostu nosaukumos
-P Neveikt portu pārvēršanu servisa nosaukumos
-r [N] Pārlādēt lsof ik pēc N sekundēm

Piemērs, lai noteiktu, kurš process izmanto konkrētu failu:

# Kurš process izmanto failu /var/log/syslog?
lsof /var/log/syslog

lsof izvadē ir šādas kolonnas:

  • COMMAND: Komandas nosaukums, kas uzsāka procesu.
  • PID: Procesa identifikators.
  • TID: Strādes identifikators (ja piemērojams).
  • USER: Lietotāja vārds, kurš uzsāka procesu.
  • FD: Faila deskriptoru (file descriptor).
  • TYPE: Faila tips (DIR, REG, FIFO, CHR, BLK, SOCK, utt.).
  • DEVICE: Ierīces identifikators.
  • SIZE/OFF: Faila izmērs vai nobīde.
  • NODE: Inode numurs.
  • NAME: Faila vai tīkla adrese.