Considere o uso de uma regra udev em vez de um serviço systemd para iniciar seu script.
Algo parecido com isto em /etc/udev/rules.d/99-serial-logger.rules :
SUBSYSTEM=="tty", ACTION=="add", KERNEL=="ttyUSB0", RUN+="/serial_script.sh"
Ou se você quiser manter o script como um serviço systemd (por exemplo, para permitir que ele seja controlado usando o comando systemctl ), remova a linha WantedBy=default.target do seu serviço e torne sua regra udev assim:
SUBSYSTEM=="tty", KERNEL=="ttyUSB0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="your-serial-logger.service"
Como resultado, udev deve informar systemd para iniciar seu serviço quando o dispositivo aparecer e pará-lo se / quando o dispositivo for removido.