Sobes.tech
Middle

Hoe kun je in Linux zien met welke bestanden een programma momenteel werkt?

sobes.tech AI

Antwoord van AI

Gebruik de lsof-hulpprogramma (lijst open bestanden).

# Basisgebruik van lsof om een lijst van alle geopende bestanden weer te geven
lsof

Om een lijst te krijgen van open bestanden door een specifiek proces (op PID):

# Geef de lijst van open bestanden voor het proces met PID 1234
lsof -p 1234

Om een lijst te krijgen van open bestanden door een specifiek commando (op naam):

# Geef de lijst van open bestanden voor alle processen met de naam "nginx"
lsof -c nginx

Om een lijst te krijgen van open bestanden door een specifieke gebruiker:

# Geef de lijst van open bestanden voor de gebruiker "user1"
lsof -u user1

Aanvullende lsof-vlaggen:

Vlag Beschrijving
-i Toont netwerkverbindingen (sockets)
-n Converteert IP-adressen niet naar hostnamen
-P Converteert poorten niet naar servicenames
-r [N] Herstart lsof elke N seconden

Voorbeeld van gebruik om te bepalen welk proces een specifiek bestand gebruikt:

# Welk proces gebruikt het bestand /var/log/syslog?
lsof /var/log/syslog

De output van lsof bevat de volgende kolommen:

  • COMMAND: Naam van het commando dat het proces heeft gestart.
  • PID: Proces-ID.
  • TID: Thread-ID (indien van toepassing).
  • USER: Gebruikersnaam die het proces heeft gestart.
  • FD: Bestandsdescriptor.
  • TYPE: Type van de bestandsknoop (DIR, REG, FIFO, CHR, BLK, SOCK, etc.).
  • DEVICE: Apparaat-ID.
  • SIZE/OFF: Bestandsgrootte of offset.
  • NODE: Inode-nummer.
  • NAME: Bestandsnaam of netwerkadres.