Deseo conocer cuáles son todos los procesos que están utilizando el sistema de archivos montado en /usr/local. Es decir, aquellos que están utilizando al menos un archivo presente dentro del mismo. ¿Cómo es posible conseguirlo? En este artículo te lo explico.



¿Para qué puede ser útil conocer todos los procesos en ejecución utilizando cierto sistema de archvios? Por ejemplo para desmontarlo, ya sea para ampliar la partición, correr fsck, etc. De esta manera es posible conocer qué servicios es necesario detener antes de poder desmontar el sistema de archivos en cuestión. No hace falta aclarar que en Linux no es posible desmontar un sistema de archivos si existen procesos que lo están utilizando.

Para comenzar, si fuser no se encuentra disponible, instalar el paquete psmisc:

root@debian:~# apt-get install psmisc

El sistema operativo utilizado como ejemplo tiene el sistema de archivos /usr/local montado desde un volúmen LVM:

root@debian:~# mount | grep local
/dev/mapper/vg_debian-lv_usrlocal on /usr/local type ext4 (rw,noatime,nodiratime,data=ordered)

Es necesario desmontar dicho filesystem, ya sea para expandir un volúmen o para redimensionar una partición. A tal fin, antes es necesario detener cualquier proceso utilizando el sistema de archivos.

Para conocer cuáles procesos están haciendo uso del mismo, se debe utilizar la herramienta fuser con las opciones -mv:

root@debian:~# fuser -mv /usr/local/
                     USER        PID ACCESS COMMAND
/usr/local:          root     kernel mount /usr/local
                     root       2169 ...e. nginx
                     root       2592 ...e. php-fpm
                     www-data   2593 ...e. php-fpm
                     www-data   2594 ...e. php-fpm
                     postgres   2596 ...e. postgres
                     postgres   2597 ...e. postgres
                     postgres   2654 ...e. postgres
                     postgres   2656 ...e. postgres
                     postgres   2657 ...e. postgres
                     postgres   2658 ...e. postgres
                     postgres   2659 ...e. postgres
                     postgres   2660 ...e. postgres
                     postgres   2661 ...e. postgres
                     postgres   2662 ...e. postgres
                     postgres   2664 ...e. postgres
                     postgres   2665 ...e. postgres
                     postgres   2666 ...e. postgres
                     postgres   2667 ...e. postgres
                     postgres   2668 ...e. postgres
                     postgres   2669 ...e. postgres
                     www-data   9407 ...e. nginx
                     www-data   9408 ...e. nginx
                     www-data   9409 ...e. nginx
                     www-data   9410 ...e. nginx
                     www-data  29531 ...e. php-fpm

La opción -v permite aumentar la verbosidad para listar los nombres de los ejecutables asociados, y la opción -m permite listar todos los procesos haciendo uso de un filesystem. La salida verbosa muestra el nombre de usuario y tipo de acceso (en este ejemplo e significa que están ejecutando un archivo dentro del filesystem) además del PID.

Para más información, consultar la página de manual de fuser (man fuser).


Tal vez pueda interesarte


Compartí este artículo