Can a Linux process block external signals but accept signals from its own process? -



Can a Linux process block external signals but accept signals from its own process? -

i trying setup linux process, blocks sigterm sent kill command (or other process), allows sigterm sent within (through kill(2) scheme call).

is possible?

here illustration programme wrote, sig_blocks both external , internal signals, doesn't want:

#include <signal.h> #include <unistd.h> #include <stdio.h> int main(int argc, char **argv) { sigset_t sigs; sigemptyset(&sigs); sigaddset(&sigs, sigterm); sigprocmask(sig_block, &sigs, 0); printf("sleeping 30 secs, seek killing me! (pid: %d)\n", getpid()); sleep(30); printf("about phone call kill\n"); kill(getpid(), sigterm); printf("this never happens!\n"); homecoming 1; }

the output is:

sleeping 30 secs, seek killing me! (pid: 29416) phone call kill never happens!

but should be:

sleeping 30 secs, seek killing me! (pid: 29416) phone call kill

because process should killed within through kill(getpid(), sigterm).

not sure if you're after, can set signal handler using sigaction sa_siginfo flag, have sigterm handler phone call _exit if siginfo.si_pid pid

linux process signals

Comments

Popular posts from this blog

How do I check if an insert was successful with MySQLdb in Python? -

delphi - blogger via idHTTP : error 400 bad request -

postgresql - ERROR: operator is not unique: unknown + unknown -