看板 LinuxDev 關於我們 聯絡資訊
請看 http://goo.gl/FWGMg 重點就是 signal handler 沒有結束的話。同一signal 是會被block住的。 ※ 引述《awaysu》之銘言: : void sighandler (int signal_number) : { : signal(SIGTERM, SIG_IGN); : if (fork() == 0) : { : printf("run app again;\n"); : system("./testapp"); : exit(EXIT_SUCCESS); : } : exit(EXIT_SUCCESS); : } : int main(int argc, char *argv[]) : { : printf("run app start!! %d\n", getpid()); : struct sigaction sa; : memset (&sa, 0, sizeof (sa)); : sa.sa_handler = &sighandler; : sigaction (SIGSEGV, &sa, NULL); : sleep(3); : *(volatile unsigned char *)0; : return 0; : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.8.191
shaopin:就是說 同一個signal只會收到一次的意思囉? 08/06 00:38
timTan:要講block才精確。 08/06 01:11
lmr3796:其實我比較好奇的是segv不是無法被handle的signal嗎? 08/07 15:38
troylee:不是..只有 SIGKILL/SIGSTOP 不能 08/07 15:54
troylee:SIGSEGV 是可以的喔..而且很好用喔 08/07 15:55