existe uma maneira de autorun-on-DISCONTAR uma unidade externa USB (U10.04)?

0

Eu tenho um pequeno HD USB que comprei para fazer backups diários, que tem um sistema de encfs.

Eu tenho um script autorun na raiz que faz algumas coisas, incluindo montar o enc-FS e essa parte funciona bem.

No entanto, se eu esquecer de fusermount -u o enc-FS-antes de ejetar, não há nenhum aviso sobre nada e o USB desmonta, deixando a parte do encFS aparentemente ainda montada. Claro que não é verdade, e tentar acessar com o nautilus, faz com que a máquina "se comporte mal".

Também há o risco de arquivos perdidos, suponho.

Por algum motivo, os sistemas não parecem detectar que a unidade ainda está ativa, como ocorre normalmente neste cenário.

De qualquer forma, a minha pergunta é: é possível configurar o equivalente a um autorun-on-dismount que é executado quando a ejeção USB ocorre?

Obrigado

    
por Thorsen 19.07.2012 / 12:16

1 resposta

2

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.

    
por Thorsen 19.07.2012 / 13:25