Можно отслеживать.
use strict;
use warnings;
use sigtrap qw/die normal-signals/;
sleep(200);
Когда я убиваю программу через cntr-c получаю:
Caught a SIGINT at kill.pl line 0.
Когда убиваю с помощью kill pid, то получаю следующее:
Caught a SIGTERM at kill.pl line 0.
При закрытии ssh в Putty:
Caught a SIGHUP at kill.pl line 0.
Вот статейка на эту тему:
perltricks.com/article/37/2013/8/18/Catch-and-Hand...