El comando fuser es útil para determinar qué archivos están utilizando recursos del sistema. Uno de los usos más comunes de este comando es determinar qué usuario está activo en un sistema de archivos, lo que evita que el administrador del sistema desmonte el sistema de archivos:
[root@localhost ~]# umount /boot umount: /boot: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
[root@localhost ~]# fuser -v /boot USER PID ACCESS COMMAND /boot: root kernel mount /boot student 29306 ..c.. bash
la salida del fusor incluirá los siguientes símbolos:
c current directory. e executable being run. f open file. f is omitted in default display mode. F open file for writing. F is omitted in default display mode. r root directory. m mmap'ed file or shared library.
La siguiente tabla describe opciones comunes para el comando fuser:
Opción | Descripción |
---|---|
-k o –kill | Eliminar el proceso que está utilizando el sistema de archivos o recurso. |
-i o –interactivo | Preguntar antes de finalizar el proceso (también debe usar la opción -k). |
-v o –verbose | Detallado; producir información útil adicional. |
Ejemplos de comandos de fuser
1. Para obtener el proceso usando el sistema de archivos raíz:
# fuser /
2. Para mostrar todos los archivos especificados en la línea de comando:
# fuser -a /
3. Para eliminar los procesos que acceden a los archivos:
# fuser -k /tmp
4. Para preguntarle al usuario antes de terminar el proceso:
# fuser -ki /tmp
5. Para enumerar todas las señales conocidas:
# fuser -l
6. Para enumerar todos los procesos del punto de montaje en el que reside el archivo dado:
# fuser -m /tmp/file.txt
7. Para funcionamiento silencioso:
# fuser -s /tmp
8. Para especificar la señal en lugar de SIGKILL:
# fuser -signal 15 /tmp
9. Para obtener el nombre de usuario del propietario del proceso:
# fuser -u /tmp
10. Para configurar el modo detallado:
# fuser -v
11. Para mostrar la información de la versión:
# fuser -V
12. Para buscar solo sockets IPv4:
# fuser -4 /tmp
13. Para buscar solo sockets IPv6:
# fuser -6 /tmp
14. Para restablecer todas las opciones de señal:
# fuser -
Reflexiones finales
El comando fuser identifica y genera los ID de proceso de los procesos que utilizan los archivos o los sistemas de archivos locales. Cada ID de proceso va seguido de un código de letra:c si el proceso está utilizando el archivo como directorio actual; e si es ejecutable; f si es un archivo abierto; F si archivo abierto para escritura; m si es una biblioteca compartida; y r si el directorio raíz. Cualquier usuario con permiso para leer /dev/kmem y /dev/mem puede usar fuser, pero solo un usuario privilegiado puede terminar el proceso de otro usuario. fuser no funciona en archivos remotos (NFS).