linux - 一些 linux 程序中奇怪的描述符关闭

标签 linux file-descriptor system-calls

在追踪一些 linux 守护进程(例如 sendmail)时,我注意到其中一些会在一开始就对许多描述符(通常在 3 到 255 之间)调用 close()。这是有意为之还是做其他事情的某种副作用?

最佳答案

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

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

进程守护进程也将采取许多其他行动,但这些行动超出了这个问题的范围。

关于linux - 一些 linux 程序中奇怪的描述符关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4302145/

相关文章:

linux - 连接未知的多个文本文件,同时在每个文件的内容后插入分隔符 Shell 脚本

linux - Linux 中文件描述符的理论限制

c - clock_gettime系统调用的clk_id有什么区别

linux - getppid 是指父级还是真正的父级?

system-calls - kevent() 在哪里验证其文件描述符?

linux-kernel - vsdo 和 vsyscall 的区别

PHP 使用系统调用为脚本设置超时,set_time_limit 不起作用

linux - awk 命令 - 检查模式并在输出中显示模式的下一行

php 全局在类内但在函数外?

c - C shell 中的错误文件描述符问题