deamon 守护进程
守护进程:在windows下叫服务。以d结尾:sshd,如:syslog ssh
守护进程和终端没有关系。不依赖于窗口。
getpgid(); //获取进程组id
setpgid(); //独立出来,成为一个组。成立一个新的进程组。
getsid(); //获得会话组id
setsid(); //当一个进程独立出来,变成一个新的会话。
例1:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
int main()
{
if(fork()>0){
//把主进程关掉。首先换爹变成1号,这样我就不依赖于别人了。
exit(0);
}
setsid();
chdir("/");
//因为当前路径可能不在,有可能挂掉。
umask(0);
int i;
for(i=0;i<3;i++){
//关闭0,1,2.跟终端没关系了
close(i);
}
while(1);
return 0;
}
进程、进程组、会话组(会话周期)