守护进程(linux进程与线程学习笔记)

    科技2022-08-03  109

     守护进程       通常在系统启动时运行,系统关闭时结束          linux系统中大量使用,很多服务程序以守护进程形式运行       守护进程特点       始终在后台运行          独立于任何终端          周期性的执行某种任务或等待处理特定事件       守护进程 - 会话、控制终端       linux以会话、进程组的方式管理进程          每个进程属于一个进程组          子进程与父进程属于同一个进程组          会话是一个或多个进程组的集合。通常用户打开一个终端时,系     统会创建一个会话。所有通过该终端运行的进程都属于这个会话          终端关闭时,所有相关进程会被结束       守护进程创建       创建子进程,父进程退出                  if(fork()<0){             exit(-1);         }              子进程变成孤儿进程,被init进程收养              子进程在后台运行          子进程创建新的会话              if(setsid()<0){             exit(-1);         }                  子进程成为新的会话组长              子进程脱离原先的终端          更改当前工作目录                  chdir("/");         chdir("/tmp");                  守护进程一直在后台运行,其工作目录不能被卸载                  重新设定当前工作目录cwd              重设文件权限掩码              if(umask(0)<0){             exit(-1);         }                  文件权限掩码设置为0                  只影响当前进程              关闭打开的文件描述符              int i;         for(i = 0;i<getdtablesize();i++){             close(i);         }                  关闭所有从父进程继承的打开文件                  已脱离终端,stdin/stdout/stderr无法再使用

    Processed: 0.014, SQL: 10