Présentation
Le fuser
commande (Rechercher USER ) est un outil de gestion de processus qui identifie les processus à l'aide d'un fichier, d'un répertoire ou d'un socket. De plus, fuser
fournit des informations sur le propriétaire du processus et le type d'accès et met fin aux processus en question.
Cet article explique comment utiliser le fuser
Commande Linux avec exemples.
Prérequis
- Un système exécutant Linux.
- Accès au terminal.
- Privilèges Sudo.
Syntaxe de fusion Linux
Le fuser
La commande a quelques types de syntaxe possibles :
- Options uniquement . Effectuez une action non spécifique à un répertoire, un fichier ou un socket cible.
fuser [option]
- Spécifiez le répertoire, le fichier ou le socket . Localisez tous les processus en cours d'exécution dans le chemin cible et répertoriez leurs PID.
fuser [file_or_directory_or_socket]
- Spécifiez les options et le répertoire, le fichier ou le socket . Modifier la recherche et effectuer une action spécifique sur un processus. Par exemple, résiliez-le.
fuser [options] [file_or_directory_or_socket]
- Aucune option . Affiche le message "Aucune spécification de processus donnée" message et l'écran d'aide.
Options de fusion Linux
Le fuser
La commande fonctionne même lorsque vous ne spécifiez qu'un fichier, un répertoire ou un socket. Néanmoins, l'utilisation d'options fournit des résultats plus détaillés.
Le tableau ci-dessous montre les fuser
les plus courants option :
Commande | Description |
---|---|
-v , --verbose | Affiche les champs USER, PID, ACCESS et COMMAND au lieu de ne lister que les PID. |
-n , --namespace | Change l'espace de noms de la valeur par défaut à la nouvelle. |
-m , --mount | Spécifie un fichier appartenant à un fichier et répertorie tous les processus accédant aux fichiers de ce système de fichiers. |
-k , --kill | Tue les processus. |
-i , --interactive | Demande à l'utilisateur de confirmer avant de terminer un processus. |
-[SIGNAL] | Tue les processus avec le signal spécifié au lieu de celui par défaut (SIGKILL). |
-l , --list-signals | Répertorie tous les noms de signaux pouvant être utilisés par fuser . |
-a , --all | Affiche les fichiers spécifiés sur la commande accédée par au moins un processus. |
-u , --user | Ajoute le nom d'utilisateur du propriétaire du processus à chaque PID. |
-4 , --ipv4 | Recherche uniquement les sockets IPv4. |
-6 , --ipv6 | Rechercher uniquement les sockets IPv6. |
-M , --ismountpoint | Tue les processus uniquement si NAME spécifie un point de montage. |
-w | Tuer uniquement les processus avec accès en écriture. |
-s , --silent | Représente une opération silencieuse ignorant -u et -v option. |
- | Réinitialise toutes les options. |
Exemples de commandes de fusion Linux
Le fuser
est l'outil Linux ultime pour la gestion des processus. Pour tirer le meilleur parti de l'outil, reportez-vous aux sections ci-dessous pour voir les fuser
courants exemples.
Rechercher des processus dans un répertoire
Le fuser
de base rôle est d'identifier les processus qui utilisent des fichiers dans un répertoire particulier. La syntaxe est :
fuser [directory]
Par exemple, pour lister les processus en cours d'exécution dans le répertoire courant, utilisez le point (.
) :
fuser .
La sortie répertorie les PID de tous les processus accédant au répertoire actuel.
Le terminal affiche l'Accueil dossier comme le dossier actuel. Par conséquent, l'utilisation de ce chemin de dossier imprime la même sortie :
fuser /home/sara
Pour imprimer une sortie plus lisible, utilisez le -v
option (verbose) avant le répertoire :
fuser -v .
La même commande fonctionne sur n'importe quel autre répertoire. Par exemple, identifiez les processus dans WhatIsThis répertoire placé dans le répertoire Accueil dossier avec :
sudo fuser -v /home/sara/WhatIsThis
Remarque : Utilisation de sudo
imprime plus de processus, y compris ceux appartenant à root.
Le fuser -v .
la sortie est détaillée et comprend les colonnes suivantes :
- UTILISATEUR - Le propriétaire du processus.
- PID - L'identifiant du processus.
- ACCÈS - Le type d'accès.
- COMMANDE - La commande exécutant le processus.
Dans les exemples ci-dessus, la colonne d'accès affiche le symbole c , qui présente le répertoire courant. Les autres types d'accès et symboles sont :
- e - Exécutable en cours d'exécution.
- f - Ouvrir le fichier.
- F - Fichier ouvert en écriture.
- r - Répertoire racine.
- m - fichier mmap ou bibliothèque partagée.
Répertorier les processus utilisant un fichier
Trouvez les processus accédant à un fichier en exécutant fuser
avec un chemin vers le nom du fichier.
fuser -v [filename]
Par exemple, voir les processus utilisant le this_is_a_new_text fichier dans Accueil répertoire avec :
sudo fuser -v /home/sara/this_is_a_new_text
La sortie affiche :
- Root en tant que propriétaire du processus.
- PID du processus.
- Le type d'accès f représentant un fichier ouvert.
- La commande
less
accéder au fichier.
Le fuser
La commande fonctionne également sur un exécutable, comme PYTHON3 dans le répertoire bin :
sudo fuser -v /bin/python3
La commande affiche :
- Root en tant que propriétaire du processus.
- PID du processus.
- Le symbole d'accès e , indiquant que le fichier est un exécutable.
- La commande
networkd-dispat
exécutant le fichier.
Rechercher les processus à l'aide d'un socket
Pour trouver des processus utilisant des sockets TCP et UDP, utilisez :
fuser -v -n [socket_type] [port]
Ou :
fuser -v [port]/[socket_type]
Le -n
flag sélectionne le type de socket correspondant (TCP ou UDP) comme espace de noms. Par exemple, identifiez le processus exécuté sur le port TCP 631 avec :
sudo fuser -v -n tcp 631
La syntaxe la plus courte est :
sudo fuser -v 631/tcp
Dans les deux cas, la commande imprime le PID du processus, F comme type d'accès, et le cupsd
commande.
Trouver un processus accédant à un système de fichiers
Utilisez le -m
flag with fuser pour identifier tous les processus accédant à un système de fichiers en ciblant un fichier appartenant à ce système.
Par exemple, pour répertorier tous les fichiers et processus en cours d'exécution dans le système de fichiers auquel le this_is_a_new_text appartient au fichier, saisissez :
sudo fuser -v -m this_is_a_new_text
Tuer les processus
La commande fuser avec le -k
indicateur termine les processus dans un chemin sélectionné. Par exemple, un processus exécute le this_is_a_new_text fichier dans Accueil annuaire. Le fichier est ouvert avec la commande less.
Utilisez fuser -k
pour tuer uniquement le processus accédant à ce fichier, pas tous les processus utilisant le Accueil répertoire :
sudo fuser -v -k /home/sara/this_is_a_new_text
Le terminal n'imprime rien après l'une ou l'autre des deux commandes. De plus, cibler un fichier avec fuser
n'imprime également aucun résultat. Cela signifie que le processus est terminé :
sudo fuser -v /home/sara/this_is_a_new_text
Pour le confirmer, vérifiez le this_is_a_new_text fichier précédemment ouvert avec less
:
La sortie affiche le message tué et une nouvelle ligne de terminal vide, confirmant que le processus est tué.
Tuez les processus de manière interactive
Le drapeau -k
tue tout processus utilisant un fichier particulier. Cependant, si l'espace de noms est un répertoire, fuser -k
tue tous les processus accédant à ce répertoire. Exécuter cette commande dans Accueil répertoire sans spécifier le fichier, tue le processus exécutant le système d'exploitation et arrête le système .
Pour éviter les erreurs, exécutez fuser
en mode interactif avec le -ki
option. Arrêtez les processus de manière interactive dans la Accueil répertoire avec :
fuser -ki .
La commande demande une confirmation à chaque fois avant de tuer un processus. Par conséquent, appuyez sur y pour arrêter le processus et passer au suivant, ou choisissez N pour passer au processus suivant.
Envoyer un signal
Lors de l'exécution de fuser
avec -k
, le SIGKILL signal est envoyé à un processus. Cependant, pour interrompre le fuser -k
normal l'exécution et terminer les processus avec un signal différent, incluez le -[SIGNAL]
drapeau.
fuser -k -[SIGNAL] [file_or_directory_or_socket]
Pour lister tous les signaux connus de fuser
, exécutez :
fuser -l
La sortie montre 31 signaux fuser
peut utiliser. Par conséquent, lors de l'exécution de fuser -k -[SIGNAL]
, spécifiez le signal par son nom ou son numéro (-1 à -31). Par exemple, pour permettre à un processus d'effectuer un arrêt contrôlé, utilisez -TERM
ou -5
comme -[SIGNAL]
.
Par exemple, pour tuer le processus en utilisant le port TCP 631 en utilisant le TERM
signaler, exécuter :
sudo fuser -ki -TERM -n tcp 631
Une autre option consiste à utiliser -5
comme -[SIGNAL]
et 631/TCP comme nom de port :
sudo fuser -ki -5 631/TCP
Le résultat est le même dans les deux cas. Autrement dit, en utilisant TERM
permet la sortie en douceur, et le -ki
flag demande une confirmation, ce qui réduit les risques d'erreurs.
Pour vérifier les fonctions et les valeurs numériques d'autres signaux Linux standard, exécutez :
man 7 signal
Conclusion
Après avoir lu ce tutoriel, vous savez comment trouver un processus à l'aide d'un fichier, d'un répertoire ou d'un socket ou terminer des processus avec fuser
.
Ensuite, découvrez d'autres façons de tuer n'importe quel processus, ainsi que la façon de répertorier les processus sous Linux.