关于守护进程和exec函数族

关于守护进程创建的基本步骤我就不详细描述了,大佬们的文章写了很多

基本步骤就是

1. 创建子进程  fork

2.父进程退出,子进程创建新会话 setsid()

3.改变进程的工作目录 chdir()

4.指定文件掩码 umask()

5.对输入,输出,错误文件描述符做处理

6.守护进程的主逻辑

7.退出(不是一定要写的)

然后这里比较经典的一个练习题目就是,让守护进程每隔多少秒输出系统时间到文件中,由于之前做的时候用到了exec函数族去执行一些命令,所以这里也想到了这个,但是很奇怪,在守护进程的主逻辑中使用了exec函数之后发现,通过ps -aux命令找不到这个进程,而且文件中只有一行,百思不得其解

 

直到我打开了exec的man 文档,发现上面有这么一句话

大意就是,exec函数族会用一个新进程替代当前进程,也就是说我们的守护进程在exec执行完之后歇菜了,这个东西之前是知道的,但是还是卡了好久,如果非要使用exec函数族的话,参考上一篇实现shell和管道的文章

 

这个坑大家勿踩

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章