Condições de início da unidade do sistema
With ConditionPathExists= a file existence condition is checked before a unit is started. If the specified absolute path name does not exist, the condition will fail. If the absolute path name passed to ConditionPathExists= is prefixed with an exclamation mark ("!"), the test is negated, and the unit is only started if the path does not exist.
ConditionPathIsMountPoint= is similar to ConditionPathExists= but verifies whether a certain path exists and is a mount point.
Parece que o método mais fácil é incluir
ConditionPathIsMountPoint=/mnt/backup
Na sua seção [Unit]
. Embora isso não verifique qual dispositivo está montado lá, embora no caso de criar um backup, o usuário não pode ser exigente.
Você provavelmente também precisaria de Restart=on-failure
para continuar tentando iniciar o serviço.
Um método mais preciso seria escrever uma regra de udev
que inicia o serviço quando um determinado dispositivo é montado.
Start by finding your device in lsusb. Note the ID (eg 0a81:0101)
Create a new udev rules file in /etc/udev/rules.d/ via sudoedit /etc/udev/rules.d/100-mount-videos.rulesand plonk a new rule in there like this:
ACTION=="add", ATTRS{idVendor}=="0a81", ATTRS{idProduct}=="0101", RUN+="/home/your_username/bin/mount_videos.sh"
Você pode simplesmente substituir o RUN+=
por RUN+=/usr/bin/systemctl start backup.service
ou o nome que você chamou de seu serviço