PHP/Linux:Does';杀戮-9';等同于西格尔?

PHP/Linux:Does';杀戮-9';等同于西格尔?,php,linux,signals,Php,Linux,Signals,我正在看一段PHP代码,用于执行信号陷阱: <?php /* SIGTERM for 'kill' default of -15 SIGINT for control-c */ declare(ticks = 1); pcntl_signal(SIGTERM, "signal_handler"); pcntl_signal(SIGINT, "signal_handler"); function signal_handler($signal) {

我正在看一段PHP代码,用于执行信号陷阱:

<?php
/*
SIGTERM for 'kill' default of -15
SIGINT for control-c
*/
    declare(ticks = 1);

    pcntl_signal(SIGTERM, "signal_handler");
    pcntl_signal(SIGINT, "signal_handler");

    function signal_handler($signal) {
        switch($signal) {
            case SIGTERM:
                print "Caught SIGTERM\n";
                exit;
            case SIGKILL:
                print "Caught SIGKILL\n";
                exit;
            case SIGINT:
                print "Caught SIGINT\n";
                exit;
        }
    }

    while(1) {
        //
    }
?>

SIGKILL是否可以等同于“kill”命令的数字选项,例如“kill-9”?如果不是,什么条件会导致SIGKILL信号?谢谢

是的,你是对的。“kill-9”将等同于SIGKILL。从kill手册页:

“可通过三种方式指定备用信号:-9-SIGKILL-KILL。”

另外,如果您查看man 7信号:

           "SIGKILL       9       Term    Kill signal"

所以,是的-“kill-9”将发出SIGKILL信号。

是的,信号9是SIGKILL。您可以运行kill-l并查看信号列表及其编号(手册页
signal(7)
也有更多信息)


然而,这种情况是没有用的。信号处理程序无法捕获SIGKILL(手册页中有详细信息)。因此,在switch语句中使用它是没有意义的。

不是从PHP后台获得的,但它在这里是可能的