daemon_init.c

来自「unix网络编程卷1:套接口API的全书源码」· C语言 代码 · 共 49 行

C
49
字号
#include	"unp.h"#include	<syslog.h>#define	MAXFD	64extern int	daemon_proc;	/* defined in error.c */intdaemon_init(const char *pname, int facility){	int		i;	pid_t	pid;	if ( (pid = Fork()) < 0)		return (-1);	else if (pid)		_exit(0);			/* parent terminates */	/* child 1 continues... */	if (setsid() < 0)			/* become session leader */		return (-1);	Signal(SIGHUP, SIG_IGN);	if ( (pid = Fork()) < 0)		return (-1);	else if (pid)		_exit(0);			/* child 1 terminates */	/* child 2 continues... */	daemon_proc = 1;			/* for err_XXX() functions */	chdir("/");				/* change working directory */	/* close off file descriptors */	for (i = 0; i < MAXFD; i++)		close(i);	/* redirect stdin, stdout, and stderr to /dev/null */	open("/dev/null", O_RDONLY);	open("/dev/null", O_RDWR);	open("/dev/null", O_RDWR);	openlog(pname, LOG_PID, facility);	return (0);				/* success */}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?