udev remove event not sent untill the device is closed
From: Thomas Stewart
Date: Mon Sep 27 2004 - 16:57:38 EST
Hi,
I'm running 2.6.8.1 with udev-031. I have a usb2serial converter which has a
udev rule to give it a persistent name in my dev tree. I want to run a script
when the converter is attached, and another when the converter is removed.
I tried both the /etc/hotplug.d and /etc/dev.d methods to do this (I like the
dev.d method better as I can use my persistent device name). Unfortunately I
ran into problems.
I'm catching the tty event as it sets $DEVPATH to something useful
(e.g. /devices/sys/class/tty/ttyUSB0). And then running a different script
depending on $ACTION.
I made a short script to do this, and put it in /etc/dev.d/default/ttyUSB.dev:
#!/bin/sh
test "$1" != "tty" && exit
test "$ACTION" == "add" && /usr/local/bin/on
test "$ACTION" == "remove" && /usr/local/bin/off
(I removed the various error checking that actually makes sure the tty event
in question was actually the serial converter, and not some other device.)
This works fine, I can add and remove the converter to my hearts content and
both scripts run accordingly.
However, if I attach the device, open it with say a "cat /dev/ttyUSB0" and
then remove the device. No tty events get sent untill I kill the cat.
I want to be able to run the script when I remove the converter. (I actually
want the remove script to kill the process that has the device open.)
I found it hard to use the usb events because when they run, $DEVPATH no
longer exists. Which means I have no idea which converter was removed.
(Can replies be CC'ed to me as I'm not subscribed. Thanks)
Regards
--
Tom
PGP Fingerprint [DCCD 7DCB A74A 3E3B 60D5 DF4C FC1D 1ECA 68A7 0C48]
PGP Publickey [http://www.stewarts.org.uk/public-key.asc]
PGP ID [0x68A70C48]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/