Hoje em dia, a maneira canônica de executar um daemon quando um dispositivo está conectado parece ser criar uma unidade do systemd para o daemon e adicionar uma entrada do udev para o dispositivo referente a esta unidade. Por exemplo, crie um arquivo /etc/udev/rules.d/90-my.rules
com a linha
ACTION=="add", KERNEL=="ttyACM*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="myacm@%k.service"
e um arquivo /etc/systemd/system/[email protected]
com
[Unit]
Description=my serial daemon for ttyACM0
[Service]
ExecStart=/bin/myscript %i
Você pode precisar de sudo udevadm control --reload
e sudo systemctl daemon-reload
. Quando você conecta seu dispositivo, seu script deve ser executado com o parâmetro ttyACM0
, se esse for o nome dele. Verifique os arquivos de log em busca de erros.
Veja man 7 daemon
seção Daemons de Novo Estilo e Ativação Baseada em Dispositivo , bem como man systemd.device
.