blob: 363999d0b122fd61108fb08cf8a4aecfd0ea7770 [file] [log] [blame]
Glenn Kasten3707e7f2013-09-23 15:10:12 -07001#include <signal.h>
2#include <stdio.h>
3#include <stdlib.h>
4#include <unistd.h>
5
6int nohup_main(int argc, char *argv[])
7{
8 if (argc < 2) {
9 fprintf(stderr, "Usage: %s [-n] program args...\n", argv[0]);
10 return EXIT_FAILURE;
11 }
12 signal(SIGHUP, SIG_IGN);
13 argv++;
14 if (strcmp(argv[0], "-n") == 0) {
15 argv++;
16 signal(SIGINT, SIG_IGN);
17 signal(SIGSTOP, SIG_IGN);
18 signal(SIGTTIN, SIG_IGN);
19 signal(SIGTTOU, SIG_IGN);
20 signal(SIGQUIT, SIG_IGN);
21 signal(SIGTERM, SIG_IGN);
22 }
23 execvp(argv[0], argv);
24 perror(argv[0]);
25 return EXIT_FAILURE;
26}