FUSER(1)

NOM
fuser - Identifier les processus qui utilisent un fichier

SYNOPSIS
fuser [-a|-s|-c] [-4|-6] [-k [-i] [-signal ] ] [-muvf] nom ...
fuser -l
fuser -V

DESCRIPTION
fuser affiche les PIDs des processus qui utilisent les fichiers ou les systèmes de fichiers indiqués. Dans le mode d'affichage par défaut, chaque fichier est suivi d'une lettre indiquant le type d'accès :

    c   répertoire courant.

    e   programme en cours d'exécution.

    f   fichier ouvert. f est omis par défaut.

    r   répertoire racine.

    m   fichier projeté en mémoire, ou bibliothèque partagée.

fuser renvoie un code de retour non nul si aucun des fichiers mentionnés n'est utilisé, ou en cas d'erreur fatale. Si au moins un accès est détecté pour l'un des fichiers mentionnés, fuser renvoie zéro.

Pour rechercher les processus utilisant les sockets UDP ou TCP, l'espace de nom correspondant doit être sélectionné avec l'option -n. Par défaut fuser recherchera les socket IPv4 et IPv6. Pour modifier ceci, utilisez les options -4 ou -6. Les sockets peuvent être spécifiées par leurs port local ou distant et l'adresse distante. Tous les champs sont facultatifs, mais il faut une virgule après un champ absent : [port_local][,[hôte_distant][,[port_distant]]] Pour les adresses IP et numéros de port, on peut utiliser des numéros ou des noms symboliques.

fuser n'affiche sur la sortie standard (stdout) que les PIDs, tout le reste est envoyé sur la sortie d'erreur (stderr).

OPTIONS

-a  Montrer tous les fichiers mentionnés sur la ligne de commande. Par défaut, seuls les fichiers utilisés par au moins un processus seront affichés.

-c  Identique à l'option -m, utile pour une compatibilité POSIX.

-f  Ignorée silencieusement, utile pour une compatibilité POSIX.

-k  Envoyer un signal aux processus utilisant les fichiers. Si le modificateur -signal, n'est pas mentionné, c'est le signal SIGKILL qui est envoyé. Un processus fuser ne se tue jamais lui-même, mais il peut tuer d'autres processus fuser. L'UID effectif du processus exécutant fuser est remplacé par son UID réel avant l'émission du signal.

-i  Demander confirmation à l'utilisateur avant de tuer le processus. Cette option est silencieusement ignorée si l'option -k n'est pas elle aussi fournie.

-l  Afficher la liste des noms de signaux disponibles.

-m  fichier se trouve sur un système de fichiers monté, ou est un périphérique bloc monté. Tous les processus accédant aux fichiers sur ce système seront affichés. Si le nom d'un répertoire est mentionné, il est automatiquement remplacé par fichier/. pour inclure tous les systèmes de fichiers pouvant être montés en dessous de lui.

-n espace
    Sélectionner un espace de noms différent. Sont supportés : file (les noms de fichiers, par défaut), udp et tcp pour les ports locaux. Pour les ports, on peut indiquer un numéro ou un nom de service. S'il n'y a pas d'ambiguïté, le raccourci nom/espace (par exemple : 80/tcp) est accepté.

-s  Agir en silence. Les options -u et -v sont alors ignorées. L'option -a ne doit pas être utilisée avec l'option -s.

-signal
    Envoyer le signal indiqué plutôt que SIGKILL. On peut mentionner soit le nom du signal (p.ex. : -HUP), soit son numéro (p.ex. : -1). Cette option est silencieusement ignorée lorsque l'option -k n'est pas utilisée.

-u  Ajouter à chaque PID le nom d'utilisateur de son propriétaire.

-v  Mode volubile. Les processus sont présentés à la manière de ps. Les champs PID, USER et COMMAND sont similaires à ceux de ps. ACCESS indique le type d'utilisation du fichier. Si l'utilisation se fait par le noyau (par exemple dans le cas d'un point de montage, un fichier swap, etc.) kernel sera affiché à la place du PID.

-V  Afficher le numéro de version.

-4  Ne chercher que des sopckets IPv4. Cette option ne peut pas être utilisée avec -6 et n'a d'effet que sur les espaces de nom tcp et udp.

-6  Ne chercher que des sopckets IPv6. Cette option ne peut pas être utilisée avec -4 et n'a d'effet que sur les espaces de nom tcp et udp.

-   Remettre toutes les options à leurs valeurs par défaut, et le signal à SIGKILL.

FICHIERS
/proc Emplacement du système de fichiers proc

EXEMPLES
fuser -km /home tue tous les processus accédant de quelque manière que ce soit au système de fichiers /home.

if fuser -s /dev/ttyS1; then :; else qqchose; fi appelle qqchose si aucun autre processus n'utilise /dev/ttyS1.

fuser telnet/tcp affiche tous les processus du port (local) TELNET.

RESTRICTIONS
Les processus accédant plusieurs fois au même fichier, ou au même système de fichiers ne sont affichés qu'une fois.

Si le même objet est spécifié plusieurs fois sur la ligne de commande, certaines occurrences peuvent être ignorées.

fuser ne dispose de toutes les informations que s'il est exécuté avec les privilèges de root. Ainsi, des fichiers ouverts par des processus appartenant à d'autres utilisateurs n'apparaîtront peut-être pas, et des exécutables peuvent n'être vus qu'en tant que projection en mémoire.

L'installation de fuser en tant que SUID root évite les problèmes d'informations incomplètes, mais peut être gênant pour des raisons de sécurité et de discrétion.

Les espaces de nom udp et tcp, et les sockets du domaine UNIX ne fonctionnent pas avec les noyaux antérieurs au 1.3.78.

udp et tcp fonctionnent avec IPv6 et IPv4, mais les adresses sont uniquement du type IPv4.

Les accès par le noyau ne sont affichés qu'avec l'option -v.

L'option -k ne fonctionne que sur les processus. Si l'utilisateur est le noyau, fuser affichera un message mais ne fera rien de plus.

BOGUES

fuser -m /dev/sgX affichera (ou tuera si l'option -k est présente) tous les processus, même si ce périphérique n'est pas configuré. D'autres périphériques peuvent également être concernés.

fuser ne pourra rien afficher sur les processus sur lesquels il n'a pas la permission d'accéder à la table des descripteurs de fichiers. La plupart du temps, cela survient pour des sockets TCP ou UDP lorsque fuser est lancé par un utilisateur normal (pas le super-utilisateur). Dans ce cas, fuser n'affichera aucune utilisation.

AUTEUR
Werner Almesberger <werner.almesberger@lrc.di.epfl.ch>

Craig Small <csmall@small.dropbear.id.au>

VOIR AUSSI
kill(1), killall(1), lsof(8), ps(1), kill(2)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 8 juin 1997, mise à jour par Alain Portal <aportal AT univ-montp2 DOT fr> le 15 mai 2006 et révisée le 19 novembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 1 fuser ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.