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: Ֆայլի անունը կամ ցանցային հասցեն.