Linux中國

Linux 有問必答:如何在Perl中捕捉並處理信號

Perl中,信號可以被捕獲,並由一個全局的%SIG哈希變數指定處理函數。這個%SIG哈希變數的鍵名是信號值,鍵值是對應的信號處理程序的引用。因此,如果你想為特定的信號定義自己的信號處理程序,你可以直接在%SIG中設置信號的哈希值。

下面是一個代碼段來處理使用自定義信號處理程序中斷(INT)和終止(TERM)的信號。

$SIG{INT}  = &signal_handler;
$SIG{TERM} = &signal_handler;

sub signal_handler {
    print "This is a custom signal handlern";
    die "Caught a signal $!";
}

%SIG其他的可用的鍵值有'IGNORE'和'DEFAULT'。當所指定的鍵值是'IGNORE'(例如,$SIG{CHLD}='IGNORE')時,相應的信號將被忽略。指定'DEFAULT'的鍵值(例如,$SIG{HUP}='DEFAULT'),意味著我們將使用一個(系統)默認的信號處理程序。

via: http://ask.xmodulo.com/catch-handle-interrupt-signal-perl.html

譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國