SafeChildren Banner

Havoc Oracle Solaris Experts

viernes, 23 de julio de 2010

Cómo saber que procesos están utilizando el dispositivo

Introducción
En alguna ocasión al intentar desmontar una unidad Solaris nos ha devuelto el siguiente mensaje:

# umount /mnt
umount: /mnt ocupado
Esto 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:
# fuser filename
La 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
Ejemplo de uso
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