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.