I have recently done something similar, but I decided to let cron do the killing.
My process starts by creating a kill script and then cron executes it once a day and then spawns a new instance of the main script which creates a new kill script and it gets a little like groundhog day.
### Create the kill script for cron ###
my $killPid = $$;
bifFile::writeToFile($killscript, "kill $killPid");
my $mode = '0755';
chmod oct($mode), $killscript;
$killscript is the path and name of the script (a ksh script in this case) and bifFile is a perl module full of silly little utilities I use all the time. writeToFile uses two parameters, filename and text to put in the file.