⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reread2.c

📁 UNIX环境高级编程书的源代码
💻 C
字号:
#include "apue.h"#include <syslog.h>#include <errno.h>extern int lockfile(int);extern int already_running(void);voidreread(void){	/* ... */}voidsigterm(int signo){	syslog(LOG_INFO, "got SIGTERM; exiting");	exit(0);}voidsighup(int signo){	syslog(LOG_INFO, "Re-reading configuration file");	reread();}intmain(int argc, char *argv[]){	char				*cmd;	struct sigaction	sa;	if ((cmd = strrchr(argv[0], '/')) == NULL)		cmd = argv[0];	else		cmd++;	/*	 * Become a daemon.	 */	daemonize(cmd);	/*	 * Make sure only one copy of the daemon is running.	 */	if (already_running()) {		syslog(LOG_ERR, "daemon already running");		exit(1);	}	/*	 * Handle signals of interest.	 */	sa.sa_handler = sigterm;	sigemptyset(&sa.sa_mask);	sigaddset(&sa.sa_mask, SIGHUP);	sa.sa_flags = 0;	if (sigaction(SIGTERM, &sa, NULL) < 0) {		syslog(LOG_ERR, "can't catch SIGTERM: %s", strerror(errno));		exit(1);	}	sa.sa_handler = sighup;	sigemptyset(&sa.sa_mask);	sigaddset(&sa.sa_mask, SIGTERM);	sa.sa_flags = 0;	if (sigaction(SIGHUP, &sa, NULL) < 0) {		syslog(LOG_ERR, "can't catch SIGHUP: %s", strerror(errno));		exit(1);	}	/*	 * Proceed with the rest of the daemon.	 */	/* ... */	exit(0);}

⌨️ 快捷键说明

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