SIGSEGV默认被阻止

时间:2012-04-26 11:58:51

标签: sigsegv

我有一个应用程序:“app-ctrl” Process-id:1000

我想通过发送信号SIGSEGV来杀死这个过程。 (要求用于模拟目的)

[santosh @ localhost~] $ kill -11 1000

第一次app-ctrl被杀死。现在,当它再次使用以下命令启动时:

[santosh @ localhost~] $ start app-ctrl

它获得了新的进程ID 2000。

现在,如果我想用命令“kill -11 2000”杀死它。这是行不通的。

所有其他信号的工作方式如“kill -6 2000”或“kill -9 2000”。通过调试我找到了 以某种方式SIGSEGV被阻止。所以我在主代码库中添加了以下3个语句:

sigemptyset (&x);

sigaddset(&x, SIGSEGV);

sigprocmask(SIG_UNBLOCK, &x, NULL);

添加以上3行后,“kill -11”一直使用新的二进制文件。 每次“app-ctrl”启动时,它将执行3个以上的语句。

为什么SIGSEGV默认被阻止。有没有办法阻止SIGSEGV被阻止?

0 个答案:

没有答案