【发布时间】:2018-10-11 13:47:19
【问题描述】:
我真的是 shell 脚本 和 Perl 的新手,并试图将 Perl 脚本转换为 Python脚本。
我遇到了以下代码sn-p,我不太清楚。
sub sigalrm_handler
{
printf (STDOUT "Timeout: Timeout Error Occured.\n");
kill (1, $proc);
exit (1);
}
sub main
{
...
...
$SIG{'ALRM'} = \&sigalrm_handler;
alarm ($ARGV[0]);
shift @ARGV;
$proc = spawn (@ARGV);
wait;
exit ($?);
...
...
}
main ()
这个$SIG{'ALRM'} 命令要做什么?它是 Python 中的某种特殊关键字吗?
我已经看到很多使用$SIGALRM 的来源,但没有找到任何来源提到为什么使用它,例如$SIGALRM,只是为什么不使用其他名称。
这个$SIG{'ALRM'} 的值在分配之后会是什么?
谁能帮我理解这段代码?
【问题讨论】:
-
Perl 的内置警报/$SIG{ALRM} 功能。此函数及其相关的信号处理程序允许您安排程序接收 SIGALRM 信号,然后您可以适当地捕获和处理该信号。这里有一个有用的例子docstore.mik.ua/orelly/weblinux2/modperl/ch06_10.htm
标签: shell perl process signals alarm