setsid

setsid命令 setsid(); setsid();//之前paren

setsid命令
linux常用的命令
setsid命令的一般格式:
setsid();
說明:當進程是會話組長時setsid()調用失敗。但第一點已經保證進程不是會話組長。setsid()調用成功後,進程成為新的會話組長和新的進程組長,並與原來的登錄會話和進程組脫離。由於會話過程對控制終端的獨占性,進程同時與控制終端脫離。
pid_t pid = fork();
if (pid == 0) {
...
int result = execl(path, "ADB", "fork-server", "server", NULL);
} else {
// run a program in a new session
setsid();//之前parent和child運行在同一個session里,而且parent是session頭,所以,
//所以作為session頭的parent如果exit結束執行的話,那么會話session組中的所有進程將都被殺死,
//所以執行setsid()之後,parent將重新獲得一個新的會話session組id,child將仍持有原有的會話session組,
//這時parent退出之後,將不會影響到child了[luther.gliethttp].
}
setsid()的返回值:
成功:調用進程的會話ID;
失敗:-1;

相關詞條

熱門詞條

聯絡我們