blob: cc4202100f267a86ee783b29462d4205fbee3e9f [file] [log] [blame]
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
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);
}