A abordagem recomendada seria ter udev
iniciando um systemd
service, que depende do seu dispositivo.
O arquivo de serviço deve ter uma aparência semelhante à seguinte:
my.service
- a ser colocado em /etc/systemd/system
[Unit]
Description=<DESCRIPTION HERE>
BindsTo=<DEVICE UNIT HERE>.device
After=<DEVICE UNIT HERE>.device
[Service]
ExecStart=<CALL TO SCRIPT HERE>
Nota: para obter uma lista das unidades de dispositivo disponíveis, use
list-units --all --full | grep ".device"
E a regra udev
deve ser algo como o seguinte:
90-my.rules
- a ser colocado em /etc/udev/rules.d
KERNEL=="tty*", ATTRS{serial}=="<DEVICE SERIAL HERE>", TAG+="systemd", ENV{SYSTEMD_WANTS}="my.service"
Nota: para obter uma lista dos atributos do seu dispositivo específico, incluindo seu número de série, use
udevadm info -a -n /dev/tty*
Esta questão , embora bastante diferente, também pode ser de interesse.