Mettons que l'on veut faire un unmount d'un périphérique, prenons un cdrom
pour notre exemple, et que la commande:
umount /mnt/cdrom
retourne le message d'erreur:
umount: /mnt/cdrom: device is busy
Que faire?
Voici 3 stratégies possibles:
1- La solution « old school »:
Faire un « lsof | grep /mnt/cdrom» et regarder quelle(s) application(s)
utilise encore la ressource que l'on veut unmounter. Ça demande que la
commande lsof soit installé, ce qui n'est pas toujours le cas, et de faire
ensuite un kill sur l'application.
2- La solution « dynamitons les ponts »:
Faire un « fuser -k /mnt/cdrom», ce qui a pour effet de tuer de façon
brutale les process qui bloquent la ressource en question. Peut avoir des
effets pervers dans le style de tuer un shell, et tout ses enfants, dans
lequel les repertoires courant est /mnt/cdrom
3- La solution « sur mesure ».
Ce qu'on veut dans le fond, c'est de forcer le media à se demounter.
Pourquoi ne pas simplement lui dire? La commande: « umount -l
/mnt/cdrom » fera l'affaire.
De la man page de umount:
-l Lazy unmount. Detach the filesystem from the filesystem hierar-
chy now, and cleanup all references to the filesystem as soon as
it is not busy anymore. (Requires kernel 2.4.11 or later.)
Miguel