#include #include #include #include #include int main (int ac, char **av) { char *hostname = NULL; int i, rc = 0; struct sigaction act; if (!(hostname = getenv("SLURMD_NODENAME"))) { fprintf (stderr, "Failed to get hostname on this node\n"); hostname = "Unknown"; } for (i = 1; i < SIGRTMAX; i++) { sigaction (i, NULL, &act); /* NOTE: If the slurmd is started from a terminal such as * rxvt-unicode or anything like it (aterm) it will ignore * SIGFPE (8) thus failing this test. */ if (act.sa_handler == SIG_IGN) { fprintf (stderr, "%s: Signal %d is ignored!\n", hostname, i); if (i == SIGFPE) fprintf (stderr, "%s: Terminals like rxvt-unicode/aterm will ignore SIGFPE. Rerun this test where the slurmd isn't started from that terminal if you get this message.\n", hostname); rc = 1; } else if (act.sa_handler != SIG_DFL) { fprintf (stderr, "%s: Signal %d has handler function!\n", hostname, i); rc = 1; } } return (rc); }