3

在跟踪一些 linux 守护进程(例如 sendmail)时,我注意到其中一些会在开始时对多个描述符(通常范围从 3 到 255)调用 close()。这是故意做的,还是做其他事情的某种副作用?

4

1 回答 1

3

它通常作为使进程成为守护进程的一部分来完成。

所有文件描述符都已关闭,以便长时间运行的守护程序不会不必要地占用任何资源。例如,如果一个守护进程要继承一个打开的文件并且该守护进程没有关闭它,那么该文件就不能被删除(它的存储空间将一直分配到关闭)并且该文件所在的文件系统不能被卸载。

守护进程还将采取许多其他操作,但这些操作超出了此问题的范围。

于 2010-11-29T10:53:56.550 回答