From 8d3b32c87a4bb6b4250e5543c6685254a54bf0f9 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 1 Oct 2014 15:09:13 +0800 Subject: [PATCH] PUB:20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl @geekpi --- ...nswers--How to catch and handle a signal in Perl.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) rename {translated/tech => published}/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md (51%) diff --git a/translated/tech/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md b/published/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md similarity index 51% rename from translated/tech/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md rename to published/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md index 4e6f628416..80272c60a0 100644 --- a/translated/tech/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md +++ b/published/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md @@ -1,10 +1,10 @@ -Linux 有问必答-- 如何在Perl中捕捉并处理信号 +Linux 有问必答:如何在Perl中捕捉并处理信号 ================================================================================ > **提问**: 我需要通过使用Perl的自定义信号处理程序来处理一个中断信号。在一般情况下,我怎么在Perl程序中捕获并处理各种信号(如INT,TERM)? -作为POSIX标准的异步通知机制,信号由操作系统发送给进程某个事件来通知它。当产生信号时,目标程序的执行是通过操作系统中断,并且该信号被发送到处理该信号的处理程序。任何人可以定义和注册自定义信号处理程序或依赖于默认的信号处理程序。 +作为POSIX标准的异步通知机制,信号由操作系统发送给进程某个事件来通知它。当产生信号时,操作系统会中断目标程序的执行,并且该信号被发送到该程序的信号处理函数。可以定义和注册自己的信号处理程序或使用默认的信号处理程序。 -在Perl中,信号可以被捕获并被一个全局的%SIG哈希变量处理。这个%SIG哈希变量被信号号锁定并包含对相应的信号处理程序。因此,如果你想为特定的信号定义自定义信号处理程序,你可以直接更新%SIG的信号的哈希值。 +在Perl中,信号可以被捕获,并由一个全局的%SIG哈希变量指定处理函数。这个%SIG哈希变量的键名是信号值,键值是对应的信号处理程序的引用。因此,如果你想为特定的信号定义自己的信号处理程序,你可以直接在%SIG中设置信号的哈希值。 下面是一个代码段来处理使用自定义信号处理程序中断(INT)和终止(TERM)的信号。 @@ -18,13 +18,13 @@ Linux 有问必答-- 如何在Perl中捕捉并处理信号 ![](https://farm4.staticflickr.com/3910/15141131060_f7958f20fb.jpg) -%SIG其他有效的哈希值有'IGNORE'和'DEFAULT'。当所分配的哈希值是'IGNORE'(例如,$SIG{CHLD}='IGNORE')时,相应的信号将被忽略。分配'DEFAULT'的哈希值(例如,$SIG{HUP}='DEFAULT'),意味着我们将使用一个默认的信号处理程序。 +%SIG其他的可用的键值有'IGNORE'和'DEFAULT'。当所指定的键值是'IGNORE'(例如,$SIG{CHLD}='IGNORE')时,相应的信号将被忽略。指定'DEFAULT'的键值(例如,$SIG{HUP}='DEFAULT'),意味着我们将使用一个(系统)默认的信号处理程序。 -------------------------------------------------------------------------------- via: http://ask.xmodulo.com/catch-handle-interrupt-signal-perl.html 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 \ No newline at end of file