$SIG{ALRM} = sub { exit; }; alarm 60 * 60 * 2; #### open(F, ">$wherever/myscript.pid") or warn "myscript.pid: $!\n"; print F "$$\n"; close(F); $SIG{TERM} = sub { exit; }; END { unlink "$wherever/myscript.pid"; } #### [ -r $wherever/myscript.pid ] && kill `cat $wherever/myscript.pid`