Linux系统编程-守护进程
2017-07-21 19:32
429 查看
守护进程:是指在LINUX或其他多任务操作系统中在后台执行的电脑程序,说了守护进程不得不提到精灵进程。
精灵进程(d a e m o n):是生存期长的一种进程。它们常常在系统引导装入时起动,在系统关闭时终止。因为它们没有控制终端,所以说它们是在后台运行的。
守护进程可以使程序在后台不断地运行,但是以下程序不能在终端上面打印以及输出,可能要做一些复杂的操作才可以,譬如写入文件中,然后在文件中打开,如果嫌弃麻烦可以设定使用定时程序进行定时的清理。
精灵进程(d a e m o n):是生存期长的一种进程。它们常常在系统引导装入时起动,在系统关闭时终止。因为它们没有控制终端,所以说它们是在后台运行的。
守护进程可以使程序在后台不断地运行,但是以下程序不能在终端上面打印以及输出,可能要做一些复杂的操作才可以,譬如写入文件中,然后在文件中打开,如果嫌弃麻烦可以设定使用定时程序进行定时的清理。
// 头文件的读写可以在终端上面通过指令man XXX完成,想要哪个函数的头文件就man哪个函数 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int daemonize() { // 创建子进程,关闭父进程 pid_t pid = fork(); if(pid > 0) { exit(0); } else if(pid < 0) { return 0; } // 设置文件掩码,新创建文件的默认权限 umask(0); // 设置启动新的会话,将当前进程设置为新的会话 pid_t sid = setsid(); if(sid < 0) { return 0; } // 改变当前目录的工作目录 if(chdir("/") < 0) { return 0; } // 关闭不使用的文件描述符 close(0); // 标准输入 close(1); // 标准输出 close(2); // 标准出错 // 重定向,标准输入,标准输出以及标准出错!将其使用open函数至目录/dev下 open("/dev/null",O_RDONLY); open("/dev/null",O_RDWR); open("/dev/null",O_RDWR); return 1; } int main() { daemonize(); // 调用函数 while(1); // 定义死循环,使其在后台不断地刷新运行 return 0; }
相关文章推荐
- linux系统编程之进程(五):终端、作业控制与守护进程
- Linux系统编程之--守护进程的创建和详解【转】
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- [linux] C语言Linux系统编程-做成守护进程
- Linux系统编程--终端和守护进程
- 【Linux系统编程】特殊进程之守护进程
- Linux 系统编程笔记 守护进程,进程通信
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- Linux守护进程的编程实现
- Linux系统编程----孤儿进程
- linux系统编程之进程(五):exec系列函数(execl,execlp,execle,execv,execvp)使用
- linux系统编程之进程(七):system()函数使用
- 【Linux系统编程】进程介绍
- 使用Python编写Linux系统守护进程实例
- linux下系统调用编程socket进程通信---(1)
- Linux 守护进程的编程方法
- Linux守护进程的编程方法