Aprenda a utilizar el comando fuser con ejemplos en Linux


Una de las tareas más importantes en la administración de sistemas Linux es la gestión de procesos. Se trata de varias operaciones bajo seguimiento, señalización de procesos y establecimiento de prioridades de procesos en el sistema.

Existen numerosas herramientas/utilidades de Linux diseñadas para monitorear/manejar procesos como killall, agradable junto con muchos otros.

En este artículo, descubriremos cómo encontrar procesos utilizando una ingeniosa utilidad de Linux llamada fuser.

fuser es una utilidad de línea de comandos simple pero poderosa destinada a localizar procesos basados en los archivos, directorios o socket al que accede un proceso en particular. En resumen, ayuda al usuario del sistema a identificar procesos mediante archivos o sockets.

Cómo utilizar el fusor en sistemas Linux

La sintaxis convencional para usar el fusor es:

# fuser [options] [file|socket]
# fuser [options] -SIGNAL [file|socket]
# fuser -l 

A continuación, se muestran algunos ejemplos del uso de fusor para localizar procesos en su sistema.

La ejecución del comando fuser sin ninguna opción mostrará los PID de los procesos que acceden actualmente a su directorio de trabajo actual.

$ fuser .
OR
$ fuser /home/tecmint

Para una salida más detallada y clara, habilite -v o --verbose de la siguiente manera. En la salida, el fusor imprime el nombre del directorio actual, luego las columnas del propietario del proceso (USUARIO), el ID del proceso (PID), el tipo de acceso (ACCESO) y el comando (COMANDO) como se muestra en la imagen siguiente.

$ fuser -v

Debajo de la columna ACCESO, verá los tipos de acceso indicados por las siguientes letras:

  1. c : directorio actual
  2. e : un archivo ejecutable que se está ejecutando
  3. f - archivo abierto, sin embargo, f se deja fuera en la salida
  4. F - archivo abierto para escritura, F también se excluye de la salida
  5. r - directorio raíz
  6. m : archivo mmap o biblioteca compartida

A continuación, puede determinar qué procesos están accediendo a su archivo ~ .bashrc así:

$ fuser -v -m .bashrc

La opción -m NAME o --mount NAME significa nombrar todos los procesos que acceden al archivo NAME. En caso de que especifique un directorio como NAME, se cambia espontáneamente a NAME/, para usar cualquier sistema de archivos que posiblemente esté montado en ese directorio.

En esta sección trabajaremos mediante el uso de fusor para matar y enviar señales a los procesos.

Para matar un proceso que accede a un archivo o socket, utilice la opción -k o --kill así:

$ sudo fuser -k .

Para matar de forma interactiva un proceso, donde se le pide que confirme su intención de matar los procesos que acceden a un archivo o socket, utilice la opción -i o --interactive :

$ sudo fuser -ki .

Los dos comandos anteriores matarán todos los procesos que accedan a su directorio actual, la señal predeterminada enviada a los procesos es SIGKILL, excepto cuando se usa -SIGNAL.

Puede enumerar todas las señales usando las opciones -l o --list-signals como se muestra a continuación:

$ sudo fuser --list-signals 

Por lo tanto, puede enviar una señal a los procesos como en el siguiente comando, donde SIGNAL es cualquiera de las señales enumeradas en la salida anterior.

$ sudo fuser -k -SIGNAL

Por ejemplo, este comando a continuación envía la señal HUP a todos los procesos que tienen abierto su directorio /boot .

$ sudo fuser -k -HUP /boot 

Intente leer la página del manual del fusor para conocer las opciones de uso avanzadas e información adicional y más detallada.

Eso es todo por ahora, puede comunicarse con nosotros a través de la sección de comentarios a continuación para cualquier ayuda que posiblemente necesite o sugerencias que desee hacer.