regra udev não está funcionando para a ação “add”

0

Eu tenho a seguinte regra do udev ( /etc/udev/rules.d/97-automounter.rules ), que funciona para a ação "remover", mas não funciona para a ação "adicionar". O script para a ação "add" funciona se executado manualmente.

# rule: mount/umount /dev/vd* when EBS volume is attached.
ENV{DEVNAME}=="/dev/vd[b-z]", ACTION=="add", SUBSYSTEMS=="block", RUN+="/usr/local/sbin/udev-automounter.sh %k"
ENV{DEVNAME}=="/dev/vd[b-z]", ACTION=="remove", SUBSYSTEMS=="block", RUN+="/usr/local/sbin/udev-autounmounter.sh %k"

Não sabe como corrigir isso ou depurar. Qualquer ajuda seria ótima.

    
por robarrighi 07.11.2014 / 17:32

1 resposta

0

Parece que você tem a mesma chamada, seja ela adicionada ou removida:

"/usr/local/sbin/udev-autounmounter.sh %k"

que eu não tenho certeza do que% k está chamando, mas que é geralmente o local de desenvolvimento. Bem, você precisaria do script para saber se ele precisa executar o bloco add ou remover o bloco de código. Se necessário, quebre a parte add e crie udev-add.sh e copie a parte remove para um script udev-rem.sh e ajuste o comando que você tem lá, assim ele chama o udev-add.sh para a porção add e o udev -rem.sh para a remoção.

Isso deve ajudá-lo. Caso contrário, você precisaria de uma maneira de dizer ao script para chamar a sub-rotina add para as sub-rotinas e a sub rotina diferente e separada para remoção. Você poderia usar uma variável se você DEVE usar o mesmo script para que quando você o remover também mude uma variável para alguma coisa assim quando o script rodar ele verificar a variável e diga hey se essa variável diz remove eu rodar essa parte e se não houver conjunto de variáveis OU se estiver configurado para outra coisa eu corro apenas a parte add.

A maneira que o comando parece agora mesmo é executar o mesmo dispositivo e adicionar sub-rotina quando chamado para adicionar e remover o dispositivo.

    
por 07.11.2014 / 18:02

Tags