A regra USB UDEV parece executar o script muitas vezes

1

Eu escrevi uma regra personalizada do udev que procura um dispositivo usb específico para ser conectado e, em seguida, executa alguns comandos do gphoto. Veja abaixo:

ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="32a1", RUN+="/usr/bin/gphoto2 --set-config /main/settings/capturetarget=1 && /usr/bin/gphoto2 --capture-image --interval 5"

Essencialmente, isso deve permitir que minha câmera conectada configure o método de armazenamento para o cartão SD do camnera, depois tire fotos a cada 5 segundos para um número infinito de fotos (ou até que eu desconecte a câmera). No entanto, o aplicativo parece estar executando várias instâncias de si mesmo (pode ser outra coisa acontecendo, no entanto). Depois de tirar algumas fotos (5 - 15), a câmera pára de tirar fotos.

No entanto, quando executo esses comandos exatos como um usuário local (por exemplo, usuário: pi em um pi de framboesa), a câmera funciona como seria de esperar.

Qualquer ajuda é muito apreciada, já que sou relativamente novo nas regras do udev e não entendo por que isso não está funcionando.

    
por Colton Hawkins 10.10.2016 / 05:54

1 resposta

0

Um problema com sua receita é que você usa a sintaxe do shell, ou seja, a estrutura command1 & amp; & amp; comando2. Mas o udev não passa o comando para um shell, portanto, as construções do shell, como o controle do job e o redirecionamento de E / S, NÃO estão disponíveis.

Você pode usar algo como

RUN +="sh -c 'alguns comandos aqui, mas você não pode usar aspas duplas'"

De qualquer forma, eu cheguei a essa pergunta porque também tenho o problema de que as regras do udev para o meu teclado disparam algo como 6 vezes quando eu troco o KVM.

    
por reikred 01.04.2017 / 05:43