Linux中创建守护进程

一、定义:
Linux Daemon(守护进程)是运行在后台的一种特殊进程。 它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程不会因为终端的关闭而关闭,直至整个系统关闭后才会关闭。

二、创建守护进程的两种方式
1.逐步配置创建进程。
2.利用系统函数创建进程。

三、示例代码
方式一:逐步配置创建进程

#include 
#include 
#include 
#include 
#include 
#include 

/*
方式二: 逐步配置创建守护进程

*/

void mydaemon()
{
	pid_t pid;
// 1.创建子进程,父进程退出。
	 pid=fork();
	 if(pid >0) exit(0);
	 
// 2.在子进程中创建新的会话
    setsid();

// 3.改变当前的工作目录为根目录
    chdir("/");
	 
// 4.重设文件权限掩码
    umask(0);

// 5.关闭所有不需要的文件描述符  .0-stdin    			1-stdout   	2-stderr
    close(0);
	close(1);
	close(2);

}

int main(int argc,char **argv)
{
    mydaemon();
	while(1){

	}
}


方式二:利用系统函数创建进程。

#include 
#include 
#include 
#include 
/*
方式一: 利用系统函数创建守护进程
     int daemon(int nochdir, int noclose);
     
	nochdir:=0 将当前目录更改至“/”
	noclose:=0 将标准输入、标准输出、标准错误重定向至“/dev/null”

*/

int main(int argc,char **argv)
{
	int ret;	
	FILE *fp;
	int i=0;
 //创建守护进程,工作目录切换到 /目录,将stdin、stdout、stderr屏蔽
 //不会随着终端的关闭而关闭,系统全部关闭后才会关闭。:
 	ret=daemon(0,0);
	if(ret<0)  return -1;

    while(1)
    {
         fp=fopen("log.txt","a+");
         if(fp==NULL) return -1;
		 fprintf(fp,"%d",i++);
		 fclose(fp);
         sleep(1);
     }
}

你可能感兴趣的:(linux,运维)