What\'s the best way for a running C or C++ program that\'s been launched from the command line to put itself into the background, equivalent to if the user had launched fro
The simplest form of backgrounding is:
if (fork() != 0) exit(0);
In Unix, if you want to background an disassociate from the tty completely, you would do:
0, 1, and 2).if (fork() != 0) exit(0);setpgroup(0,getpid()); /* Might be necessary to prevent a SIGHUP on shell exit. */signal(SIGHUP,SIG_IGN); /* just in case, same as using nohup to launch program. */fd=open("/dev/tty",O_RDWR);ioctl(fd,TIOCNOTTY,0); /* Disassociates from the terminal */close(fd);if (fork() != 0) exit(0); /* just for good measure */That should fully daemonize your program.