📄 siinit.c
字号:
/**********************************************************************
*Copyright 2003 Toptvtech.Co.,Ltd.
*File name:siinit.c
*Author:houchao Version: 0.01 Date:2003/11/23
*Descriptor:init the daemon in SI daemon .
*Fuctions:
* init_daemon(workdir):init
*History: no.
*
***********************************************************************/
#include <unistd.h>
#include <signal.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
int init_daemon(workdir)
char *workdir;
{
int pid;
int i;
if((pid=fork()))
exit(0);//是父进程,结束父进程
else if(pid< 0)
exit(1);//fork失败,退出
//是第一子进程,后台继续执行
setsid();//第一子进程成为新的会话组长和进程组长
//并与控制终端分离
if((pid=fork()))
exit(0);//是第一子进程,结束第一子进程
else if(pid< 0)
exit(1);//fork失败,退出
//是第二子进程,继续
//第二子进程不再是会话组长
for(i=0;i< NOFILE;++i)//关闭打开的文件描述符
close(i);
umask(0);//重设文件创建掩模
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -