Truco: Cómo desmontar un dispositivo (USB, flash, etc) cuando esta ocupado y conocer la aplicación que lo mantiene ocupado

11 11 2008

¿Esto no os sucede constantemente? Has metido un dispositivo USB (familiarmente llamado “pincho”) en tu PC y has abierto algunos trabajos y despues cuando lo desmontas te aparece el mensaje (utilizando nautilus en Gnome de Ubuntu):

mensaje-dispositivo-ocupado

O bien mediante el terminal el mensaje de error:

1
2
3
4
$ umount /media/disk/
/sbin/umount.hal: Unmounting /media/disk failed: 
org.freedesktop.Hal.Device.Volume.Busy: 
umount: /media/disk: device is busy.

Sería mucho más útil si en ese mensaje de error se nos dijera que aplicación es la que mantiene el dispositivo ocupado (por lo general porque este leyendo o escribiendo en el dispositivo ) porque somos humanos y no todos tenemos poderes de adivino (a menos que vivas en un mundo de ficción como Héroes).

Pero aquí estamos en el 2008, usando Ubuntu 8.10 Intrepid y el dichoso mensaje no ha cambiado en los cerca de 3 años que estoy usando Ubuntu (con otras distros no se si lo muestren, pero supongo que no).

Bien, pues aquí va un sencillo truco para conocer la aplicación rebelde que mantiene ocupado nuestro “pincho”.

Usamos el comando fuser para que nos identifique la ID (o PID) del proceso rebelde y le pasamos el parametro m junto con el nombre del dispositivo (que en ubuntu suele ser del tipo /media/nombre, en mi caso es disk):

1
2
$ fuser -m /media/disk/
/media/disk/:        13601

Bien, nuestro PID rebelde es el 13601

Ahora invocamos la siguiente instrucción con dicho PID:

1
2
3
4
$ ps auxw | grep 13601
shakaran 13601  0.3  3.3 192544 70332 ?        
Sl   Nov11   0:03 /usr/lib/openoffice/program/soffice.bin 
-writer file:///media/disk/trabajo_rebelde.dot -splash-pipe=5

Este comando lo que hace es invocar al programa ps que nos informa del estado de los procesos con las parametros auxw que son:

1
2
3
4
5
a    muestra también los procesos de otros usuarios
u    formato usuario: muestra el usuario y la hora de inicio
x    muestra procesos que no están controlados por ninguna terminal
s    formato señal (signal)
w    Salida  ancha (wide): no se truncan las líneas de comando

Asi que como podeis apreciar el “rebelde” es el OpenOffice que se niega a cerrar el archivo “trabajo_rebelde.dot”.

Si lo que quereis es desmontar el dispositivo y os dá igual saber quien es el rebelde (es decir, os da igual el rebelde, solo quereís su cabeza cortada). Podeís ejecutar el comando umount con el parametro -l, en mi caso:

1
$ umount -l media/disk

Si aun así da error, ejecutarlo con privilegios de superusuario (con sudo) y ya no se resistirá:

1
$ sudo umount -l media/disk

VN:R_N [1.9.17_1161]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)
12 months, 2 days, 21 hours, 0 minutes remaining.


Páginas del manual de ubuntu en Español

11 10 2008
Páginas man en español

Ubuntu trae una utilidad en el sistema llamada man (una interfaz de los manuales de referencia electrónicos). Es bastante útil para hacer consultas de los comandos o parámetros de un determinado programa.

Generalmente toda esta documentación suele estar en inglés y aunque su compresión no es muy difícil, resulta más cómodo poder leerlo en nuestro idioma nativo.

Para usarlo, simplemente debemos escribir en el terminal:

1
$ man programa

Siendo programa, el programa en cuestión a consultar.

También existen interfaces gráficas, para no utilizar la consola. Pero en este artículo nos centraremos en el uso por consola.

En nuestro caso haremos una consulta sobre el comando “ping“:

1
$ man ping

Si no hemos hecho ninguna modificación, por defecto nos aparecerá el manual en inglés:

1
2
3
4
PING(8)                                System Manager’s Manual: iputils                                PING(8)
 
NAME
ping, ping6 - send ICMP ECHO_REQUEST to network hosts

Bien, para resolver este pequeño inconveniente, simplemente debemos tener los repositorios Multiverse activados y después proceder a instalar los paquetes “manpage-es” y “manpages-es-extra” mediante Synaptic o terminal:

1
$ sudo apt-get install manpages-es manpages-es-extra

De este modo, nos encontraremos la mayoría de manuales en nuestro idioma español. Por ejemplo para nuestro anterior caso del comando ping:

1
$ man ping

Nos devolverá:

1
2
3
4
5
6
7
PING(8)                                   BSD System Manager’s Manual                                  PING(8)
 
NAME
ping - envía paquetes ICMP ECHO_REQUEST a servidores de red
 
SINOPSIS
ping [-dfnqrvR] [-c count] [-i wait] [-l preload] [-p pattern] [-s packetsize]

Como curiosidad añadir, que podeis consultar el manual del propio comando man:

1
$ man man

Pero no existe página de manual para “woman” ;)

1
2
$ man woman
No existe entrada de manual para woman
VN:R_U [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)


Truco: Hacer captura de pantalla con retraso en Ubuntu (Gnome)

13 08 2008
Camara con retraso

A veces nos interesa hacer una captura de pantalla, pero con unos segundos de retraso.

Esto se puede hacer invocando al capturador de pantalla de Gnome en el terminal, pasando el parámetro delay (retraso) y el número de segundos que queramos, por ejemplo para tres segundos sería:

1
$ gnome-screenshot --delay=3

A los tres segundos, nos aparecerá la ventana del capturador de pantallas y podremos guardar la imagen con el nombre que queramos.

Actualización: podemos hacer exactamente lo mismo de forma más cómoda desde la interfaz de Aplicaciones>Accesorios>Capturar pantalla

Interfaz Gnome Screenshot

Y poner los segundos que queramos seleccionando la opción de capturar tras un retardo de N segundos.

VN:R_U [1.9.17_1161]
Rating: 5.0/10 (1 vote cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)