Eu não resolvi isso antes, mas parece que pode ser uma boa opção para "ativação baseada em caminho".
Em vez de ter uma cláusula "After=" em seu arquivo de serviço, você criaria um arquivo .path , conforme descrito em man systemd.path .
Encontre um arquivo adequado em /dev/bus/usb ou /sys/bus/usb , cuja presença indica que "USB está ativo". Então, tenha systemd monitorando o caminho do arquivo usando o arquivo .path que você criará. O arquivo .path , em seguida, ativaria seu arquivo .service quando o arquivo existir.