En alguna ocasión al intentar desmontar una unidad Solaris nos ha devuelto el siguiente mensaje:
# umount /mntEsto significa que algún proceso está utilizando el dispositivo, pero, a simple vista no sabemos cuál es. Para ello disponemos del comando </usr/sbin/fuser> que nos proporciona dicha información, su formato es:
umount: /mnt ocupado
# fuser filenameLa respuesta del comando será de la siguiente forma:
file: pid{c|m|n|o|r|t|y} pid_n{c|m|n|o|r|t|y}Donde
- c Indica que el proceso está utilizando file como current directory
- m Indica que el proceso tiene mapeado file con nmap
- n Indica que el proceso tiene un lock no bloqueante
- o Indica que el proceso tiene un descriptor de fichero a file
- r Indica que el proceso tiene file como su directorio root
- t Indica que el proceso tiene file como su text file
- y Indica que el proceso usa file como su control de terminal
Para ilustrarlo mejor, por ejemplo, vamos a crear un nuevo sistema de ficheros siguiendo el post de Cómo Gestionar Archivos como Block Devices utilizando lofiadm y posteriormente cambiaremos nuestro current directory al punto de montaje para que no nos permitan desmontar la unidad.
# mkfile 50m /tmp/sfchildren.ufs
# lofiadm -a /tmp/sfchildren.ufs
/dev/lofi/1
# newfs /dev/rlofi/1
... omitimos los mensajes ...
# mount -F ufs /dev/lofi/1 /mnt
# cd /mnt
# umount /mnt
umount: /mnt ocupado
# fuser -u /mnt
/mnt: 286c(root) 201c(root)
# ps -ef|egrep "286|201"|grep -v grep|grep -v ps
root 201 177 0 10:51:50 console 0:00 bash
Referencias
No hay comentarios:
Publicar un comentario