Pues nada, estaba hoy copiandome unos archivos a mi llave usb montada en /media/usb:
$ sudo mount /dev/sdb1 /media/usb
Nota: si tienes otra llave USB, en otro equipo, el nombre (/dev/sdb1) puede ser diferente como ya vimos
y una vez terminado me decidi a desmontar la unidad:
$ sudo umount /media/usb
Cuando me salta el mensaje: «Device is Busy» (El dispositivo esta ocupado) y no me deja.
En este punto podria «haber pasado de todo» y quitado el USB de la ranura, pero claro, tampoco es cuestion de que estuviera escribiendo datos y al quitarlo se quedara corrompido el sistema de ficheros o similar. Asi que he navegado un poco y he encontrado la solucion.
Gracias al comando fuser que nos permite conocer que procesos estan usando un determinado fichero (recuerda que los dispositivos son tratados en linux como si fueran ficheros) o un sistema de ficheros.
Genial, ejecuto el comando:
$ fuser -m /dev/sdb1
/dev/sdb1: 23244
Y me indica que el «culpable» de que mi usb este pillado (bloqueado) es el proceso con pid 23244.
Pues nada, ejecutamos ahora el comando «ps» y ya sabemos quien es ese proceso:
$ ps auxw|grep 23244
En mi caso era una sesion «bash», es decir, un terminal que se quedo abierto. Lo mate:
$ kill -9 23244
y ya pude desmontar la unidad sin problemas. Esto mismo me paso otra vez con el «sonido», estaba reproduciendo audio con Smplayer y dejo de escucharse.
En este caso la solucion fue ejecutar «fuser /dev/snd» y anotar los procesos que estaban haciendo uso del sonido, para despues matarlos y reiniciar el pulseaudio:
$ sudo /etc/init.d/pulseaudio restart
No es frecuente que estas cosas pasen, pero si pasan, ya tenemos una opcion para intentar solucionarlas.
Excelente… Me viene muy bien esta info.
Se agradece!
Hola, muy buen dato y quiero agregar otro metodo.
http://marconipoveda.blogspot.com/2007/04/escribiendo-ntfs-en-linux.html
lsof |grep directorio_montado luego hacemos el grep con el directorio, sacamos el proceso y su le damos patatu 😛
Saludos cordiales
muy bueno el post, a mi tambien me sucedio lo del usb, pero me pillo en un momento con prisas y no tuve mas remedio que sacarlo con algunos rezos. Me apunto el comando porque es bastante util
Buenisimo! espero acordarme cuando lo necesite.. fu-ser… 😉
Yo utilizaba el de lsof como Poveda, pero siempre es bueno otra alternativa y mas puntual.
Gracias!!!
fuuu seeer…. (haciendo memoria)
lsof +D
va más rápido que
lsof | grep
ya que va «al grano».
Decían también:
Just to be a pedant, it doesn’t do the same thing, it does something markedly different, however it does often produce the same result.
Actually the results can be very different, take for example the case of «lsof +D /bin/» which will find any open files under /bin and «lsof |grep /bin/» which will find any files with /bin/ in their path e.g. files in /usr/bin as well as files in in /bin.
Aparte de lo dicho,
lsof +D
no sólo responde con los pids de los procesos (como hace fuser), sino también con los nombres de ellos y más información.
Así el usuario se ahorra también el hacer luego «ps auxw|grep ….»
Nota: Tras «lsof» Escribí palabras entre símbolos de «mayor» y «menor», pero luego no han aparecido en los comentarios (ni los símbolos ni las palabras de dentro).
ya, es culpa de wordpress, en vez de coger los simbolos de «mayor» y «menor» es mejor poner «& gt;» y «& lt;»
Gracias, voy a probar a ver con la información que has dado:
< palabras entre símbolos >
Reformando lo escrito:
lsof +D <dispositivo_o_directorio>
no sólo responde con los pids de los procesos (como hace fuser), sino también con los nombres de ellos y más información.
Así el usuario se ahorra también el hacer luego “ps auxw|grep …”
Ejecutar
lsof +D /bin
va más rápido que
lsof | grep /bin
ya que va “al grano”, a ese directorio y no a todos para después buscar en los resultados.
Decían también:
Just to be a pedant, it doesn’t do the same thing, it does something markedly different, however it does often produce the same result.
Actually the results can be very different, take for example the case of “lsof +D /bin/” which will find any open files under /bin and “lsof |grep /bin/” which will find any files with /bin/ in their path e.g. files in /usr/bin as well as files in in /bin.
Muy buen post, me sirvió mucho gracias. A mi me pasó en vez de un USB con un archivo iso, pero lo solucioné con tu post.
Gracias 🙂