setsid()函数的作用

来源:互联网 发布:淘宝上组装电脑好便宜 编辑:程序博客网 时间:2024/04/30 08:51

转载:http://blog.chinaunix.net/uid-30025978-id-4760323.html

setsid()之前parent和child运行在同一个session里,而且parent是session头,所以作为session头的parent如果exit结束执行的话,那么会话session组中的所有进程将都被杀死,所以执行setsid()之后,parent将重新获得一个新的会话session组id,child将仍持有原有的会话session组,这时parent退出之后,将不会影响到child了[luther.gliethttp].

头文件

 

函数形式

pid_t setsid(void);

返回值

成功

失败

是否设置errno

调用进程的会话ID

?1

setsid函数将创建新的会话,并使得调用setsid函数的进程成为新会话的领头进程。调用setsid函数的进程是新创建会话中的惟一的进程组,进程组ID为调用进程的进程号。setsid函数产生这一结果还有个条件,即调用进程不为一个进程的领头进程。由于在第一步中调用fork的父进程退出,使得子进程不可能是进程组的领头进程。该会话的领头进程没有控制终端与其相连。至此,满足了守护进程没有控制终端的要求。

0 0
原创粉丝点击