当前位置:   article > 正文

进程学习--03

进程学习--03

        守护进程(Daemon)是一种特殊的进程,在Linux系统中作为后台服务进程,通常在系统启动时开启,系统结束后关闭。

        守护进程在后台运行,不拥有任何控制终端,因此它们不会受到控制终端的信号影响。此外,守护进程是孤立的,它们必须与其运行前的环境隔离开来,包括未关闭的文件描述符、控制终端、会话和进程组、工作目录以及文件创建掩码等。

        常见的守护进程包括系统日志进程syslogd、Web服务器httpd、邮件服务器sendmail和数据库服务器mysqld等。这些守护进程负责执行各种系统级的任务,如作业规划、打印管理、网络服务提供等。

        在Linux系统中创建守护进程一般操作如下:1、创建子进程、父进程退出;2、在子进程中创建新会话;3、改变当前目录为根目录;4、重设文件掩码;5、关闭所有文件描述符。

  1. int main(){
  2. int pid;
  3. if(pid=fork()) exit(0);//父进程退出,子进程变为孤儿进程
  4. else if(pid<0) exit(-1);
  5. setsid();//使当前进程成为一个新的会话的领头进程,从而与原会话脱离关系,也脱离控制终端。
  6. if(pid=fork()) exit(0);
  7. else if(pid<0) exit(-1);
  8. for(int i=0; i<gettablesize(); i++) close(i);//关闭所有的文件描述符;
  9. chdir("/tmp");//改变当前目录;
  10. umask(0);//重设文件掩码;
  11. while(1){
  12. ...//工作代码;
  13. }
  14. return 0;
  15. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/261915
推荐阅读
相关标签
  

闽ICP备14008679号