Sobes.tech
Middle

Hogyan lehet megtudni Linuxon, hogy melyik fájlokon dolgozik éppen egy program?

sobes.tech MI

Válasz az MI-től

Az lsof segédprogram használata (nyitott fájlok listázása).

# Az `lsof` alapvető használata, az összes nyitott fájl listázása
lsof

Egy adott folyamat által nyitott fájlok listájának lekérése (PID szerint):

# A 1234 PID-vel rendelkező folyamat által nyitott fájlok listázása
lsof -p 1234

Egy adott parancs által nyitott fájlok listájának lekérése (név szerint):

# Az összes "nginx" nevű folyamat által nyitott fájlok listázása
lsof -c nginx

Egy adott felhasználó által nyitott fájlok listájának lekérése:

# A "user1" felhasználó által nyitott fájlok listázása
lsof -u user1

További lsof zászlók:

Zászló Leírás
-i Hálózati kapcsolatok (socketek) megjelenítése
-n IP-címek nem konvertálódnak hosztnevekre
-P Portok nem konvertálódnak szolgáltatásnevekre
-r [N] A lsof újraindítása minden N másodpercben

Példa arra, hogy melyik folyamat használ egy adott fájlt:

# Melyik folyamat használja a /var/log/syslog fájlt?
lsof /var/log/syslog

A lsof kimenete a következő oszlopokat tartalmazza:

  • COMMAND: A folyamat indítását végző parancs neve.
  • PID: Folyamat azonosító.
  • TID: Szál azonosító (ha alkalmazható).
  • USER: A felhasználó neve, aki elindította a folyamatot.
  • FD: Fájldeskriptor.
  • TYPE: A fájl típusa (DIR, REG, FIFO, CHR, BLK, SOCK, stb.).
  • DEVICE: Eszköz azonosító.
  • SIZE/OFF: A fájl mérete vagy eltolás.
  • NODE: inode száma.
  • NAME: A fájl neve vagy hálózati címe.