Вот еще один вариант без использования таймера. Если время не очень критично, а скрипт не очень долго выполняется, то он подойдет для простых вещей.
[Unit]
Description=Run foo
[Service]
User=%I
Restart=always
RestartSec=1800s
ExecStart=/bin/bash /home/user/script.sh