
把网络进程守护进程化前后台进程(看谁拥有键盘输入)jobs./xxx bgfgCtrlzCtrlC只能终止前台进程一个bash登录会话中只能有一个前台进程后台进程可以有多个后台进程一获取键盘输入直接被OS暂停abc也是兄弟进程进程组 作业会话自成会话是一个系统问题系统调用是setsid问题是如果进程本身就是group leader组长自成会话本来的组还在吗什么时候组才会不在只要组里还有人组就会在组里没有人组就不在但是setsid调用的时候不能是group leader解决办法是fork创建子进程让子进程调用setsid自成会话父进程退出这样子进程肯定不是group leader子进程就可以自成会话称为守护进程精灵进程也是孤儿进程精灵进程的名称来源于daemon可以直接实现自成会话有些细节问题1.程序中有日志printf/cout/cerr进行debug如果直接把文件描述符关闭就会报错这样过于粗暴如果把所有输出语句删掉一方面麻烦另一方面如果后续出现问题想进行debug重新写输出语句吗日志可以放到文件而不是标准输出而pirntf/cout/cerr可以把标准输出/错误重定向到/dev/null部署服务nochir为0就是chdir改变当前工作路径为根目录noclose为0就是closedaemon中的clsoe好像是重定向问题server先退出server立即重启起不来为什么要重启现在大规模的网络服务已经融入人们生活方方面面比如打车购物一旦服务器出问题立马重启不然损失的就是钱问题可以后续排查所以有重启的需求解决方式地址复用