Bem, eu criei uma maneira não muito elegante de contornar isso.
O script autorun
é parecido com isto:
#!/bin/bash
/path/to/mount-script&
while : # loop isn't really needed ...
do
sleep 999d # ... because the script will idle for 999 days
if (($?))
then
# sleep closed abnormally, so tidy up
/path/to/dismount-script
exit 1
fi
done
Assim, quando a ejeção da unidade ocorre, o sistema detecta sleep
e bash
ainda estão em execução e exibe o diálogo de aviso; clique com o botão direito do mouse em sleep
no diálogo e termine com um status de saída de 130 que significa que o script de desmontagem será chamado e quando ele retornar o script bash será encerrado e o dispositivo USB será ejetado corretamente.