Aprenda cómo usar 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. Implica varias operaciones bajo supervisión, procesos de señalización, así como el establecimiento de prioridades en el sistema.

Existen numerosas herramientas/utilidades de Linux diseñadas para monitorear/manejar procesos como top, ps, pgrep, kill, killall, nice junto con muchos otros.

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

fuser es una sencilla pero poderosa utilidad de línea de comandos que busca localizar procesos basados ​​en los archivos, directorios o zócalos a los que accede un proceso en particular. En resumen, ayuda a un usuario del sistema a identificar procesos mediante archivos o sockets.

Cómo usar el fusor en sistemas Linux

La sintaxis convencional para usar fusor es:

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

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

El 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 obtener una salida más detallada y clara, habilite -v o --verbose de la siguiente manera. En la salida, fuser imprime el nombre del directorio actual, luego las columnas del propietario del proceso ( USER ), ID de proceso ( PID ) , el tipo de acceso ( ACCESO ) y el comando ( COMANDO ) como se muestra en la imagen a continuación.

$ fuser -v

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

  1. c – current directory
  2. e – an executable file being run
  3. f – open file, however, f is left out in the output
  4. F – open file for writing, F is as well excluded from the output
  5. r – root directory
  6. m – mmap’ed file or shared library

A continuación, puede determinar qué procesos están accediendo a su archivo ~ .bashrc de la siguiente manera:

$ 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 haya un directorio de ortografía como NOMBRE , se cambia espontáneamente a NOMBRE/, para usar cualquier sistema de archivos que posiblemente esté montado en ese directorio.

En esta sección, trabajaremos utilizando fuser para matar y enviar señales a los procesos.

Para eliminar los procesos que acceden a un archivo o socket, emplee la opción -k o --kill de este modo:

$ sudo fuser -k .

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

$ sudo fuser -ki .

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

Puede enumerar todas las señales usando las opciones -l o --list-signal de la siguiente manera:

$ sudo fuser --list-signals 

Por lo tanto, puede enviar una señal a los procesos como en el siguiente comando, donde SEÑAL 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 su directorio /boot abierto.

$ sudo fuser -k -HUP /boot 

Intente leer la página de manual fuser para obtener opciones de uso avanzadas, 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 pueda necesitar o sugerencias que desee hacer.