Я думаю, что вы пытаетесь создать процесс демона. Прочитайте эту ссылку в Википедии для объяснения.
Пример (из Расширенного программирования Стивена в среде Unix) для превращения процесса в демон:
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
int daemon_int(void)
{
pid_t pid;
if ((pid = fork()) < 0)
return (-1) ;
else if (pid != 0)
exit(0) ; /* The parent process exits */
setsid() ; /* become session leader */
chdir("/") ; /* change the working dir */
umask(0) ; /* clear out the file mode creation mask */
return(0) ;
}
Конечно, это предполагает Unix-подобную ОС.
Таким образом, ваша программа включает вышеуказанную функцию и вызывает ее, как только она запускается. Затем он отключается от родительского процесса и будет продолжать работать до тех пор, пока не завершится или не будет уничтожен.