HotPlug

De Cliss XXI
Révision datée du 19 janvier 2006 à 20:01 par imported>SylvainBeucler (ajout exemple d'environnement dans le script; noter l'utilisation en dur de /dev/sda1)
Sauter à la navigation Sauter à la recherche

Se lance après le montage des systèmes de fixer

Se lance après le support USB

Au lancement, 'coldplug', c'est à dire hotplug comme si les périphériques étaient branchés à ce moment-là.

Fournit par le paquet Debian 'hotplug', ou bien 'udev'.

Fichiers: cf. man 8 hotplug

Que veut dire ceci?

/etc/hotplug/NAME/DRIVER         driver setup scripts, invoked by agents

Réponse: par exemple:

/etc/hotplug/usb/usb-storage

sera appelé si le périphérique qu'on vient de brancher utilise le module noyau 'usb_storage'

Code périphérique "mass storage device": 8/6/80

Exemple de fichier de hook: http://forums.gentoo.org/viewtopic-t-113911.html

#!/bin/bash

#create a script to undo our actions upon removal
if [ "$INTERFACE" = "8/6/80" ]; then
   if [ "$PRODUCT" = "5e3/702/33" -o "$PRODUCT" = "05e3/0702/0033" ]; then
       mount /backup
       cat <<'EOF' > $REMOVER
#!/bin/bash
umount -f /backup
EOF
       chmod a+x $REMOVER
   fi
fi

#!/bin/bash
#DEBUG
#echo "======="
#(
#    echo $0 $*
#    env
#)> /tmp/hot.txt
#echo "======="


On note qu'on doit faire directement référence, dans /etc/fstab, à un nom de périphérique (ici /dev/sda1). Ce serait mieux que hotplug nous dise lequel.

Exemple de sortie DEBUG ci-dessus:

SUBSYSTEM=usb
DEVPATH=/devices/pci0000:00/0000:00:10.2/usb3/3-2/3-2:1.0
REMOVER=/var/run/usb/%proc%bus%usb%003%002
PATH=/bin:/sbin:/usr/sbin:/usr/bin
ACTION=add
MODALIAS=usb:v05E3p0702d0033dc00dsc00dp00ic08isc06ip50
PWD=/etc/hotplug
UDEV_LOG=1
MANAGED_EVENT=1
UDEVD_EVENT=1
SHLVL=2
HOME=/
DEVICE=/proc/bus/usb/003/002
INTERFACE=8/6/80
PRODUCT=5e3/702/33
TYPE=usb
PHYSDEVBUS=usb
SEQNUM=379
_=/usr/bin/env

Voir aussi