#include #include #include #include #include void handler(int sig) { syslog(LOG_DEBUG, "sigtest"); printf("in handler\n"); fflush(stdout); } int main(int argc, char *argv[]) { pid_t pid; switch (pid = fork()) { case 0: break; case -1: perror("form"); exit(1); default: signaller(pid); exit(0); } signal(SIGCHLD, handler); while (1) { syslog(LOG_DEBUG, "test"); printf("in loop\n"); fflush(stdout); } } int signaller(pid_t pid) { while (1) { usleep(1); kill(pid, SIGCHLD); } }