setid

forkした後に親プロセス側は終了し、子プロセスがsetidを実行して、新しいセッションを作成。

#include 

#include 
#include 

int main()
{
    pid_t pid;
    
    if ((pid = fork()) < 0){
        perror("fork");
        return 1;
    } else if(pid > 0){
        _exit(0);
    }
    
    if (setsid() < 0){
        perror("setsid");
        return 1;
    }
    
    return 0;
}