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.