Вообще для этого есть snaked.
Но если уж городить костыли, то:
#!/bin/bash
while :; do sleep 5; flock -n /tmp/lock1 -c /var/script.sh & done
Эта конструкция будет запускать скрипт примерно каждые 5.04 секунды (помимо пяти секунд ещё будет тратиться время на вызов sleep и execve скрипта). При том само время работы скрипта уже не будет влиять на "каждые 5 секунд". Flock здесь нужен на тот случай, если скрипт "залипнет" - чтобы не плодить много запущенных копий скрипта в системе. Если скрипт ходит куда-то наружу или в базу - обязательно используйте flock.
Дальше нужно обеспечить надежный запуск самого цикла. Тут уже на помощь придет cron (вместе с flock). Добавляйте в /etc/crontab такую строку:
* * * * * root flock -n /tmp/lock2 -c /path/to/script2
Каждую минуту крон будет пытаться запустить вторую копию цикла, если lock2 занят - то запускать не будет.
Можно, конечно, просто добавить скрипт цикла в /etc/rc.local, но если он сдохнет - то уже потом не запустится.