Eu gostaria de ter automaticamente alguns arquivos de um dispositivo de armazenamento copiado em sua inserção. Eu estou olhando para usar um e o mesmo método em ambos os sistemas que usam systemd e sistemas usando scripts de inicialização (por exemplo, OpenRC no Gentoo). Além disso, eu procuraria não quebrar a montagem automática.
Eu me reúno em muitas outras questões que lidam com essa questão que é melhor feito via udev, e isso quase funciona, se não para o udev posthook ser executado estritamente antes do automount (de uma maneira em que o udev verifica o status de saída de qualquer script que ele chama e qualquer script que o script chame, por algum processo que para mim pareça mágica):
A execução do script funciona, apenas porque o arquivo não pode ser copiado, porque (acredito) o disparo do automount espera que o script de cópia termine primeiro:
chymera@quiethost ~/.repositorg/transfer $ cat /etc/udev/rules.d/95-local.rules
ACTION=="add", KERNEL=="sd?1", ENV{ID_FS_UUID}=="4C3D-8BCB", RUN+="/bin/su chymera -c /home/chymera/.repositorg/transfer/4C3D-8BCB.sh"
chymera@quiethost ~/.repositorg/transfer $ cat 4C3D-8BCB.sh
#!/usr/bin/env bash
touch ~/lalax.txt
cp "/run/media/chymera/NIKON D750/lala.txt" ~/
chymera@quiethost ~/.repositorg/transfer $ ls ~/lal*
/home/chymera/lalax.txt
chymera@quiethost ~/.repositorg/transfer $ ls /run/media/chymera/NIKON\ D750/
DCIM lala.txt NIKON001.DSC
Adicionar suspensão e desviar a execução do script para um subshell não parece funcionar.
O arquivo não se torna acessível, porque agora o automount é totalmente inibido:
chymera@quiethost ~/.repositorg/transfer $ cat /etc/udev/rules.d/95-local.rules
ACTION=="add", KERNEL=="sd?1", ENV{ID_FS_UUID}=="4C3D-8BCB", RUN+="/bin/su chymera -c /home/chymera/.repositorg/transfer/_4C3D-8BCB.sh"
chymera@quiethost ~/.repositorg/transfer $ cat _4C3D-8BCB.sh
#!/usr/bin/env bash
nohup /bin/bash /home/chymera/.repositorg/transfer/4C3D-8BCB.sh & exit
chymera@quiethost ~/.repositorg/transfer $ cat 4C3D-8BCB.sh
#!/usr/bin/env bash
touch ~/lalax.txt
sleep 5
cp "/run/media/chymera/NIKON D750/lala.txt" ~/
chymera@quiethost ~/.repositorg/transfer $ ls ~/lal*
/home/chymera/lalax.txt
chymera@quiethost ~/.repositorg/transfer $ ls /run/media/chymera/