$SIG{'INT'} = \&release_lock; $SIG{'QUIT'} = \&release_lock; $SIG{'PIPE'} = \&release_lock; #maybe too? sub release_lock{ #...do what you can here... }