在追踪一些 linux 守护进程(例如 sendmail)时,我注意到其中一些会在一开始就对许多描述符(通常在 3 到 255 之间)调用 close()。这是有意为之还是做其他事情的某种副作用?
最佳答案
它通常作为使进程成为守护进程的一部分来完成。
所有文件描述符都已关闭,以便长时间运行的守护进程不会不必要地占用任何资源。例如,如果一个守护进程要继承一个打开的文件并且守护进程没有关闭它,那么这个文件就不能被删除(它的存储空间将保持分配直到关闭)并且文件所在的文件系统不能被卸载。
进程守护进程也将采取许多其他行动,但这些行动超出了这个问题的范围。
关于linux - 一些 linux 程序中奇怪的描述符关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4302145/