Lsof

Introduction

Lsof est un utilitaire permettant de lister les fichiers ouverts. En effet, ne vous est-il jamais arrivé de vouloir supprimer un repertoire ou de démonter une partition et que cela vous soit refusé même en tant que root? Probablement que si car c’est un problème qui survient lorsque la ressource est utilisée par une application ou un utilisateur, et c’est là que lsof intervient…

Regardons par quelques exemples ce dont il retourne…

Installation

Si le paquet n’est pas installé :

emerge -av --quiet-build lsof

Utilisation

Imaginons que vous vouliez reformater la partition correspondant au repertoire /home et que vous n’arrivez pas à la démonter.

umount /home
umount: /home: périphérique occupé
umount: /home: périphérique occupé

Nous allons rechercher le soucis:

lsof | grep /home
zsh       16001 babykart  cwd       DIR       8,18        34      65537 /home/babykart

Il semble donc que nous ayons le coupable: l’utilisateur babykart utilisant un shell zsh dans le repertoire /home/babykart.

Soit vous vous arrangez pour que babykart change de repertoire, soit vous killez nerveusement… ;-)

Sinon lsof vous permet de lister les connexions:

lsof -i:80
COMMAND    PID     USER   FD   TYPE DEVICE SIZE NODE NAME
lighttpd 30521 lighttpd    4u  IPv4 311283       TCP *:http (LISTEN)
lighttpd 30522 lighttpd    4u  IPv4 311283       TCP *:http (LISTEN)
lighttpd 30523 lighttpd    4u  IPv4 311283       TCP *:http (LISTEN)

Pour d’autres options reportez-vous au man