La cosa non e` troppo dififcile.
Pero` non puoi usare i CGI. Devi fare un programma che gira sul server (e accede al database).
Il programma puoi realizzarlo in linguaggio Perl, ma devi richiamarlo con gli strumenti del SO.
Per linux e sim, puoi usare il cron (vedi man cron e man crontab);
per windows non so come si chiama (ma c'e` sicuramente).

Quindi il prgramma NON e` sempre in esecuzione, ma viene richiamato ad intervalli regolari.
Il tuo "avvia" e "arresta" puoi farlo tramite CGI: devi solo accedere ad un file, che contiene solo un booleano che abilita il programma a proseguire, oppure lo uccide subito.
Il programma quindi devi per prima cosa controllare quel file, e a seconda del valore letto proseguire nel test del database o uscire.
In alternativa, avvia e arresta possono avviare o uccidere la chiamata nel crontab (devi semplicemente fare un system() con la chiamata al cron/crontab.