GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Linux fuser con ejemplos

Introducción

El fuser comando (Buscar USUARIO ) es una herramienta de gestión de procesos que identifica procesos mediante un archivo, un directorio o un socket. Además, fuser proporciona información sobre el propietario del proceso y el tipo de acceso y finaliza los procesos en cuestión.

Este artículo explicará cómo usar el fuser Comando Linux con ejemplos.

Requisitos previos

  • Un sistema que ejecuta Linux.
  • Acceso a la terminal.
  • Privilegios de Sudo.

Sintaxis del fusor de Linux

El fuser El comando tiene algunos tipos de sintaxis posibles:

  • Solo opciones . Realice una acción que no sea específica de un directorio, archivo o socket de destino.
fuser [option]
  • Especifique directorio, archivo o socket . Localice todos los procesos que se ejecutan en la ruta de destino y enumere sus PID.
fuser [file_or_directory_or_socket]
  • Especifique opciones y directorio, archivo o socket . Modificar la búsqueda y realizar una acción específica sobre un proceso. Por ejemplo, terminarlo.
fuser [options] [file_or_directory_or_socket]
  • Sin opciones . Muestra el mensaje "No se ha proporcionado ninguna especificación de proceso" mensaje y la pantalla de ayuda.

Opciones del fusor de Linux

El fuser El comando incluso funciona cuando solo especifica un archivo, directorio o socket. Aún así, el uso de opciones proporciona resultados más detallados.

La siguiente tabla muestra los fuser más comunes opciones:

Comando Descripción
-v , --verbose Muestra los campos USUARIO, PID, ACCESO y COMANDO en lugar de solo enumerar los PID.
-n , --namespace Cambia el espacio de nombres del valor predeterminado al nuevo.
-m , --mount Especifica un archivo que pertenece a un archivo y enumera todos los procesos que acceden a los archivos en ese sistema de archivos.
-k , --kill Elimina procesos.
-i , --interactive Pide confirmación al usuario antes de finalizar un proceso.
-[SIGNAL] Elimina los procesos con la señal especificada en lugar de la predeterminada (SIGKILL).
-l , --list-signals Enumera todos los nombres de señales que pueden ser utilizados por fuser .
-a , --all Muestra archivos especificados en el comando accedido por al menos un proceso.
-u , --user Agrega el nombre de usuario del propietario del proceso a cada PID.
-4 , --ipv4 Busca solo sockets IPv4.
-6 , --ipv6 Buscar solo sockets IPv6.
-M , --ismountpoint Elimina los procesos solo si NAME especifica un punto de montaje.
-w Eliminar solo procesos con acceso de escritura.
-s , --silent Representa una operación silenciosa ignorando -u y -v opciones.
- Restablece todas las opciones.

Ejemplos de comandos del fusor de Linux

El fuser es la última herramienta de Linux para la gestión de procesos. Para aprovechar al máximo la herramienta, consulte las secciones a continuación para ver fuser comunes ejemplos.

Localizar Procesos en un Directorio

El fuser básico El rol es identificar qué procesos están usando archivos en un directorio en particular. La sintaxis es:

fuser [directory]

Por ejemplo, para enumerar los procesos que se ejecutan en el directorio actual, utilice el punto (. ) :

fuser .

El resultado enumera los PID de todos los procesos que acceden al directorio actual.

El terminal muestra la Inicio carpeta como la actual. Por lo tanto, usar esa ruta de carpeta imprime el mismo resultado:

fuser /home/sara

Para imprimir una salida más legible, use el -v (detallado) opción antes del directorio:

fuser -v .

El mismo comando funciona en cualquier otro directorio. Por ejemplo, identifique procesos en WhatIsThis directorio ubicado en el Inicio carpeta con:

sudo fuser -v /home/sara/WhatIsThis

Nota: Usando sudo imprime más procesos, incluidos los que son propiedad de root.

El fuser -v . la salida se detalla e incluye las siguientes columnas:

  • USUARIO - El propietario del proceso.
  • PID - El ID del proceso.
  • ACCESO - El tipo de acceso.
  • MANDO - El comando que ejecuta el proceso.

En los ejemplos anteriores, la columna de acceso muestra el símbolo c , que presenta el directorio actual. Otros tipos de acceso y símbolos son:

  • e - Ejecutable en ejecución.
  • f - Abrir archivo.
  • F - Archivo abierto para escritura.
  • r - Directorio raíz.
  • m - Archivo mmap'ed o biblioteca compartida.

Listar procesos utilizando un archivo

Encuentra procesos que acceden a un archivo ejecutando fuser con una ruta al nombre del archivo.

fuser -v [filename]

Por ejemplo, vea los procesos que usan this_is_a_new_text archivo en la Inicio directorio con:

sudo fuser -v /home/sara/this_is_a_new_text

La salida muestra:

  • Rootear como propietario del proceso.
  • PID del proceso.
  • El tipo de acceso f representando un archivo abierto.
  • El comando less accediendo al archivo.

El fuser El comando también funciona en un ejecutable, como PYTHON3 en el directorio bin:

 sudo fuser -v /bin/python3

El comando genera:

  • Rootear como propietario del proceso.
  • PID del proceso.
  • El símbolo de acceso e , indicando que el archivo es un ejecutable.
  • El comando networkd-dispat ejecutando el archivo.

Ubicar procesos usando un socket

Para encontrar procesos usando sockets TCP y UDP, use:

fuser -v -n [socket_type] [port]

O:

fuser -v [port]/[socket_type]

El -n flag selecciona el tipo de socket correspondiente (TCP o UDP) como espacio de nombres. Por ejemplo, identifique el proceso que se ejecuta en el puerto TCP 631 con:

sudo fuser -v -n tcp 631

La sintaxis más corta es:

sudo fuser -v 631/tcp

En ambos casos, el comando imprime el PID del proceso, F como tipo de acceso, y el cupsd comando.

Buscar proceso accediendo a un sistema de archivos

Usa el -m marca con fuser para identificar todos los procesos que acceden a un sistema de archivos apuntando a un archivo que pertenece a ese sistema.

Por ejemplo, para enumerar todos los archivos y procesos que se ejecutan en el sistema de archivos al que this_is_a_new_text pertenece el archivo, ingrese:

sudo fuser -v -m this_is_a_new_text

Procesos de eliminación

El comando fuser con el -k bandera termina los procesos en una ruta seleccionada. Por ejemplo, un proceso está ejecutando this_is_a_new_text archivo en la Inicio directorio. El archivo se abre con el comando less.

Usa fuser -k para eliminar solo el proceso que accede a este archivo, no todos los procesos que utilizan Inicio directorio:

sudo fuser -v -k /home/sara/this_is_a_new_text

El terminal no imprime nada después de ninguno de los dos comandos. Además, apuntar a un archivo con fuser tampoco imprime resultados. Esto significa que el proceso se termina:

sudo fuser -v /home/sara/this_is_a_new_text

Para confirmar esto, revisa el this_is_a_new_text archivo abierto previamente con less :

La salida muestra el mensaje asesinado y una nueva línea de terminal en blanco, lo que confirma que se canceló el proceso.

Eliminar procesos de forma interactiva

La bandera -k mata cualquier proceso usando un archivo en particular. Sin embargo, si el espacio de nombres es un directorio, fuser -k mata todos los procesos que acceden a ese directorio. Ejecutando este comando en el Inicio directorio sin especificar el archivo, elimina el proceso que ejecuta el sistema operativo y apaga el sistema .

Para evitar errores, ejecuta fuser en modo interactivo con el -ki opción. Matar procesos de forma interactiva en el Inicio directorio con:

fuser -ki .

El comando pide confirmación cada vez antes de matar un proceso. Por lo tanto, presione y para finalizar el proceso y pasar al siguiente, o elija N para pasar al siguiente proceso.

Enviar una señal

Al ejecutar fuser con -k , el SIGKILL se envía una señal a un proceso. Sin embargo, para interrumpir el fuser -k normal ejecutar y finalizar procesos con una señal diferente, incluya el -[SIGNAL] bandera.

fuser -k -[SIGNAL] [file_or_directory_or_socket]

Para listar todas las señales conocidas por fuser , ejecuta:

fuser -l

La salida muestra 31 señales que fuser puedo usar. Por lo tanto, al ejecutar fuser -k -[SIGNAL] , especifique la señal por nombre o número (-1 a -31). Por ejemplo, para permitir que un proceso realice un apagado controlado, use -TERM o -5 como -[SIGNAL] .

Por ejemplo, para terminar el proceso usando el puerto TCP 631 usando el TERM señal, ejecutar:

sudo fuser -ki -TERM -n tcp 631

Otra opción es usar -5 como -[SIGNAL] y 631/TCP como nombre de puerto:

sudo fuser -ki -5 631/TCP

El resultado es el mismo en ambos casos. Es decir, usando TERM permite la salida suave y el -ki la bandera solicita confirmación, lo que reduce las oportunidades de errores.

Para verificar las funciones y valores numéricos de otras señales estándar de Linux, ejecute:

man 7 signal

Conclusión

Después de leer este tutorial, sabrá cómo encontrar un proceso usando un archivo, directorio o socket o terminar procesos con fuser .

A continuación, aprenda otras formas de matar cualquier proceso, así como también cómo listar procesos en Linux.


Linux
  1. Comando wc Linux con ejemplos

  2. Comando Linux Tee con ejemplos

  3. Comando de cabeza de Linux con ejemplos

  4. Comando JQ en Linux con ejemplos

  5. Ejemplos de comandos fuser en Linux

Comando Tr en Linux con ejemplos

15 comandos ps de Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

Comando Linux PS con ejemplos

Comando IP de Linux con ejemplos