GNU/Linux >> Tutoriels Linux >  >> Linux

commande fuser Linux avec des exemples

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.


Linux
  1. Commande Linux wc avec exemples

  2. Commande Linux Tee avec exemples

  3. Commande principale Linux avec exemples

  4. Commande JQ sous Linux avec exemples

  5. fuser Exemples de commandes sous Linux

Commande Tr sous Linux avec des exemples

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples

Commande Linux watch avec exemples

Commande Linux PS avec exemples

Commande IP Linux avec exemples