Eu recomendaria que você usasse o loop infinito se você quer que ele continue monitorando e apenas adicione e durma dentro do seu shell para dizer a ele quanto tempo precisa passar para monitorar novamente, se você estiver usando o bash shell isso seria algo assim:
#!/bin/bash
while true
do
sudo tail -fn0 /home/main/time.log |
grep -o --line-buffered 'garage\|garden\|porch' | head -1 |
while read line; do
sudo pkill -f porch.sh &
sudo pkill -f garage.sh &
done
sleep 1 #change it for the time you want it to keep it monitoring again
done