22 SIGTTOU stop process background write attempted to control terminal
23 SIGIO discard signal I/O is possible on a descriptor (see fcntl(2))
24 SIGXCPU terminate process cpu time limit exceeded (see setrlimit(2))
25 SIGXFSZ terminate process file size limit exceeded (see setrlimit(2))
26 SIGVTALRM terminate process virtual time alarm (see setitimer(2))
27 SIGPROF terminate process profiling timer alarm (see setitimer(2))
28 SIGWINCH discard signal Window size change
29 SIGINFO discard signal status request from keyboard
30 SIGUSR1 terminate process User defined signal 1
31 SIGUSR2 terminate process User defined signal 2
perl的信号处理原理
Perl 提供了%SIG 这个特殊的默认HASH.调用需要使用到系统保留全局HASH数组%SIG,即使 用'$SIG{信号名}'截取信号,相当于,在perl程序中出现这个信号时,执行我们自己定义某段代码(子函数)的地址值(定义信号响应函数),这代码就是截取这个信息后要执行的结果了.
举个SIGALRM例子,也就是超时处理:
my $timeout = 10 ;
eval {
local $SIG{ALRM} = sub { die "alarmn" }; # n required
alarm $timeout; #如果到了$timeout时间就会去执行上面的sub
sleep 15;
print " if timeout ,this will not print";
alarm 0; #恢复到默认的状态
};
if ($@) {
die unless $@ eq "alarmn"; #可能捕获的不是超时,是其他错误,就die吧
print "timeout n" ;
}
else {
print "not timeout";
}
这里要说一下perl的错误捕获机制
eval {
open(FH,”domains.txt”) or die “Can't open files,$!”;
};









