Estou tentando iniciar um script quando uma unidade LUKS é inserida. Então eu configurei uma regra do udev:
KERNEL=="sd*3", ACTION=="add", ATTRS{serial}=="XXX", ATTRS{manufacturer}=="XXX", RUN+="/usr/local/bin/syncer-trigger /dev/%k"
O script é executado como usuário normal e chama xce4-terminal
internamente. Em seguida, o emulador de terminal chama outro script para descriptografar a unidade e montá-lo (com o comando udisksctl
).
Mas udisksctl
preso, parece que está esperando o udev terminar de configurar a unidade LUKS (o dispositivo char correspondente não existe no momento)
Então, formou uma fechadura clássica. Agora, como executo o comando *AFTER*
que a unidade está instalada?
P.Se eu rodar xfce4-terminal em segundo plano (com nohup) e dormir no outro script, o udev mataria a janela do terminal xfce4 diretamente
EDITAR
Eu tentei dbus-triggerd
:
./dbus-triggerd "type=signal,interface=org.gtk.Private.RemoteVolumeMonitor" -v --shell ./dump.sh
No dump.sh é apenas echo "$@"
, eu posso ver a saída do dbus-triggerd, mas estou vendo argumentos vazios aqui
A interface está correta, posso confirmar isso com
dbus-monitor interface=org.gtk.Private.RemoteVolumeMonitor