赞
踩
守护进程(Daemon)是一种特殊的进程,在Linux系统中作为后台服务进程,通常在系统启动时开启,系统结束后关闭。
守护进程在后台运行,不拥有任何控制终端,因此它们不会受到控制终端的信号影响。此外,守护进程是孤立的,它们必须与其运行前的环境隔离开来,包括未关闭的文件描述符、控制终端、会话和进程组、工作目录以及文件创建掩码等。
常见的守护进程包括系统日志进程syslogd、Web服务器httpd、邮件服务器sendmail和数据库服务器mysqld等。这些守护进程负责执行各种系统级的任务,如作业规划、打印管理、网络服务提供等。
在Linux系统中创建守护进程一般操作如下:1、创建子进程、父进程退出;2、在子进程中创建新会话;3、改变当前目录为根目录;4、重设文件掩码;5、关闭所有文件描述符。
- int main(){
- int pid;
- if(pid=fork()) exit(0);//父进程退出,子进程变为孤儿进程
- else if(pid<0) exit(-1);
- setsid();//使当前进程成为一个新的会话的领头进程,从而与原会话脱离关系,也脱离控制终端。
- if(pid=fork()) exit(0);
- else if(pid<0) exit(-1);
- for(int i=0; i<gettablesize(); i++) close(i);//关闭所有的文件描述符;
- chdir("/tmp");//改变当前目录;
- umask(0);//重设文件掩码;
- while(1){
- ...//工作代码;
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。