1*08b48e0bSAndroid Build Coastguard Worker #include <signal.h> /* sigemptyset(), sigaction(), kill(), SIGUSR1 */ 2*08b48e0bSAndroid Build Coastguard Worker #include <stdlib.h> /* exit() */ 3*08b48e0bSAndroid Build Coastguard Worker #include <unistd.h> /* getpid() */ 4*08b48e0bSAndroid Build Coastguard Worker #include <errno.h> /* errno */ 5*08b48e0bSAndroid Build Coastguard Worker #include <stdio.h> /* fprintf() */ 6*08b48e0bSAndroid Build Coastguard Worker mysig_handler(int sig)7*08b48e0bSAndroid Build Coastguard Workerstatic void mysig_handler(int sig) { 8*08b48e0bSAndroid Build Coastguard Worker 9*08b48e0bSAndroid Build Coastguard Worker exit(2); 10*08b48e0bSAndroid Build Coastguard Worker 11*08b48e0bSAndroid Build Coastguard Worker } 12*08b48e0bSAndroid Build Coastguard Worker main()13*08b48e0bSAndroid Build Coastguard Workerint main() { 14*08b48e0bSAndroid Build Coastguard Worker 15*08b48e0bSAndroid Build Coastguard Worker /* setup sig handler */ 16*08b48e0bSAndroid Build Coastguard Worker struct sigaction sa; 17*08b48e0bSAndroid Build Coastguard Worker sa.sa_handler = mysig_handler; 18*08b48e0bSAndroid Build Coastguard Worker sigemptyset(&sa.sa_mask); 19*08b48e0bSAndroid Build Coastguard Worker sa.sa_flags = 0; 20*08b48e0bSAndroid Build Coastguard Worker if (sigaction(SIGCHLD, &sa, NULL)) { 21*08b48e0bSAndroid Build Coastguard Worker 22*08b48e0bSAndroid Build Coastguard Worker fprintf(stderr, "could not set signal handler %d, aborted\n", errno); 23*08b48e0bSAndroid Build Coastguard Worker exit(1); 24*08b48e0bSAndroid Build Coastguard Worker 25*08b48e0bSAndroid Build Coastguard Worker } 26*08b48e0bSAndroid Build Coastguard Worker 27*08b48e0bSAndroid Build Coastguard Worker kill(getpid(), SIGCHLD); 28*08b48e0bSAndroid Build Coastguard Worker return 0; 29*08b48e0bSAndroid Build Coastguard Worker 30*08b48e0bSAndroid Build Coastguard Worker } 31*08b48e0bSAndroid Build Coastguard Worker 32