fuser - Trouver, surveiller et tuer les processus Linux
Une des tâches les plus importantes dans l'administration des systèmes Linux est la gestion des processus, qui implique plusieurs opérations telles que la surveillance, la signalisation des processus et la définition des priorités des processus sur le système.
Il existe de nombreux outils/utilitaires Linux conçus pour surveiller et gérer les processus, tels que top, ps, pgrep, kill, killall, nice et bien d'autres.
Dans cet article, nous allons découvrir comment trouver des processus en utilisant un utilitaire Linux puissant et ingénieux appelé fuser.
Qu'est-ce qu'un fuser dans Linux ?
fuser est un utilitaire en ligne de commande simple mais puissant destiné à localiser les processus en fonction des fichiers, des répertoires ou des sockets qu'un processus particulier utilise. En résumé, il aide un utilisateur du système à identifier quels processus utilisent des fichiers ou des sockets spécifiques.
La syntaxe de base pour utiliser fuser est :
fuser [options] [file|socket]
fuser [options] -SIGNAL [file|socket]
fuser -l
Trouver quel processus accède à un répertoire
Exécuter fuser sans aucune option affiche les PID des processus accédant actuellement à votre répertoire de travail.
fuser .
OR
fuser /home/tecmint
Trouver les processus en cours d'exécution d'un répertoire (sortie détaillée)
Pour une sortie plus détaillée et claire, activez le -v ou --verbose comme suit. Dans la sortie, fuser imprime le nom du répertoire courant, puis les colonnes du propriétaire du processus (USER), de l'identifiant du processus (PID), du type d'accès (ACCESS) et de la commande (COMMAND) comme dans l'image ci-dessous.
fuser -v .
Sous la colonne ACCÈS, vous verrez les types d'accès indiqués par les lettres suivantes :
c– répertoire courant.e– un fichier exécutable en cours d'exécution.f– ouvrir le fichier, cependant,fest omis dans la sortie.F– ouvrir le fichier en écriture,Fest également exclu de la sortie.r– répertoire racine.m– fichier mmapé ou bibliothèque partagée.
Trouver quel processus accède à un fichier ou à un système de fichiers
Pour déterminer quels processus accèdent à votre fichier ~/.bashrc, exécutez :
fuser -v -m .bashrc
L'option -m NAME ou --mount NAME affiche tous les processus accédant au fichier ou répertoire donné. Si vous passez un répertoire comme NAME, il ajoute automatiquement un / pour faire référence au système de fichiers monté sur ce répertoire.
Trouver quel processus utilise un port spécifique
Un autre cas d'utilisation pratique est d'identifier quel processus utilise un port réseau spécifique, ce qui est particulièrement utile pour déboguer les conflits de service.
sudo fuser 80/tcp
OR
sudo fuser -v 80/tcp
Ceci montre le PID du processus utilisant le port TCP 80. Ajoutez -v pour une sortie détaillée.
Comment tuer et signaler des processus en utilisant fuser
Pour tuer tous les processus accédant à un fichier ou à un socket, utilisez l'option -k ou --kill.
sudo fuser -k .
Pour tuer un processus de manière interactive, où vous êtes invité à confirmer votre intention de tuer les processus accédant à un fichier ou à un socket, utilisez l'option -i ou --interactive.
sudo fuser -ki .
Les deux commandes précédentes vont tuer tous les processus accédant à votre répertoire actuel ; le signal par défaut envoyé aux processus est SIGKILL, sauf lorsque -SIGNAL est utilisé.
Lister tous les signaux disponibles sous Linux
Vous pouvez lister tous les signaux en utilisant les options -l ou -list-signals comme ci-dessous.
sudo fuser --list-signals
Envoyer un signal spécifique aux processus
Par conséquent, vous pouvez envoyer un signal aux processus comme dans la commande suivante, où SIGNAL est l'un des signaux listés dans la sortie ci-dessus.
sudo fuser -k -SIGNAL
Par exemple, pour envoyer le signal HUP (raccrocher) aux processus accédant à /boot.
sudo fuser -k -HUP /boot
Pour un usage avancé et plus de détails, consultez la page manuelle fuser.
man fuser
Conclusion
La commande fuser n'est peut-être pas le premier outil qui vient à l'esprit lors de la gestion des processus, mais c'est un véritable trésor caché pour tout utilisateur de Linux ou administrateur système. Elle est parfaite pour découvrir quels processus utilisent des fichiers, des répertoires ou des ports spécifiques - et vous donne le pouvoir de les gérer directement.
Si vous travaillez avec des fichiers, des répertoires ou des services réseau sur un système Linux, apprendre à utiliser fuser en vaut 100% la peine.





