📄 daemon.c
字号:
//#include "ofh.h"#include <signal.h>voidIgnoreAllSignal(){struct sigaction act; act.sa_handler = SIG_IGN; sigemptyset(&act.sa_mask); act.sa_flags=0; sigaction(SIGHUP,&act,NULL); sigaction(SIGCHLD,&act,NULL); sigaction(SIGQUIT,&act,NULL); return ;}intGenDaemon(){int childpid,fd;int flag; if (getppid()==1) { /*chdir ("/");*/ umask(0); IgnoreAllSignal(); return 0; } IgnoreAllSignal(); if ((childpid = fork())<0 ) { printf("can't fork first child %s %d\n",__FILE__,__LINE__); exit(-1); } else if (childpid > 0) exit(0); /*---if ((flag=setpgrp()) == -1) { printf("set process group err %s %d\n",__FILE__,__LINE__); exit(-2); }----*//**** IgnoreAllSignal(); if ((childpid = fork()) < 0) { printf("can't fork fist child %s %d\n",__FILE__,__LINE__); exit(-3); } else if (childpid > 0) exit(0);****/ for (fd=3; fd<=8;fd++) close (fd); /* chdir("/"); */ umask(0); IgnoreAllSignal(); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -