in reply to Signals and END block
I understand what you're trying to do, but I wouldn't use signals for this sort of thing...
You want the database-record to reflect the 'alive'-status of your perl-script right? But there's just no 'proper' way of doing this; if your scripts gets KILL-9'd, it doesn't get to execute *any* more code...
One way to sort-of be sure of sync-state, would be to have your perl-script update a timestamp in it's record every so-often (by using SIG_ALARM probably).
Another script then keeps an eye on all records that haven't had their timestamp updated for the same interval plus a safety margin of your choosing, and performs a clean-up for records that seem 'stale'.
Your original script could maybe die with a warning if it's update failed, because it would probably mean either a database connectivity issue, or it was incorrectly identified as gone but it willing to comply...
|