运行周期长,在后台执行,一般不需要和用户进行交互
2、相关概念:会话:一个终端的打开会伴随着一个会话的建立,当退出终端,会话结束
会话首进程:终端运行的第一个进程
会话首进程的id就是会话的id
进程组:终端中执行的命令,比如执行ls,就会创建一个进程组,如果ls结束,进程组就会结束
组长进程:进程组中的第一个进程
组长进程的id就是进程组的id
会话id——getsid
组id(就是组长id)——getpgrp
当前进程的id——getpid
①fork(),退出父进程
②setsid(),创建一个新的会话
③fork(),退出父进程
④chdir("/"),将工作目录改到根目录,从而保证这个进程工作不会对我们产生影响
⑤umask(0),清除掩码
⑥close()
⑦如果产生子进程就要处理僵死进程
创建一个守护进程,启动之后在后台执行,周期性的向文件中写出当前的时间
3.4代码:#include#include #include #include #include #include void Daemon() { pid_t pid=fork(); if(pid!=0) { exit(0); } setsid();//创建新会话 pid=fork(); if(pid!=0) { exit(0); } chdir("/"); umask(0); int size=getdtablesize(); for(int i=0;i 3.5程序运行结果:



