#include #include #include #include void ouch (int sig) { printf ("got signal %d\n", sig); return; } int main (int argc, char **argv) { if (getppid() != 1 && fork()) exit(0); signal (SIGUSR1, ouch); while (pause ()) { puts ("execing myself"); execv (argv[0], argv); } exit (0); }