我写了一个简单的程序来处理一些信号。 我的计划是,
#!/usr/bin/perl
use strict;
use warnings;
$SIG{INT} = $SIG{TERM} = $SIG{HUP} = \&signal_handler;
sub signal_handler
{
print " ".localtime()." Handled the signal\n";
};
while(1)
{
sleep(1);
}
在对应信号处理程序的%SIG
哈希中指定了哪些信号
将在收到信号时被呼叫。
我为三个信号声明了一个信号处理程序。
我想找到收到的信号。
在C
中,它将通过信号处理程序参数本身给出信号编号。
实施例,
void sig_handler(int signo);
我不知道在perl.I试图找到它。但是,我没有找到任何答案。
答案 0 :(得分:11)
信号名称(INT,TERM等)作为参数传递给信号处理程序。你可以写一下例如:
sub signal_handler
{
my $signal = shift;
print " ".localtime()." Handled the signal $signal\n";
}