【问题标题】:Open descriptors while making a daemon在创建守护进程时打开描述符
【发布时间】:2014-04-24 10:24:58
【问题描述】:

R。 Love 的书《系统编程》中关于守护进程的章节说:

2. In the parent, call exit( ). 
5. Close all file descriptors. 

关于 exit() 调用的手册页说:

"The function _exit() terminates the calling process "immediately". Any open file descriptors belonging to the process are closed" 

我们真的需要关闭子进程中的所有描述符,还是只是为了另一个安全?谢谢。

【问题讨论】:

  • 你不是在同一个过程中做这两个!
  • 另外你应该写下从 2 到 5 的所有点,这样我们就可以告诉你,为什么它在两个不同的过程中。
  • @zoska,是的,我知道,但是在 exit() 中复制此操作然后手动复制的原因是什么?
  • 两者都发生在不同的进程中? Child 让它的父母打开 fds,所以如果它不需要它们,那么它应该关闭它们。没有重复,因为两者都是不同的过程。
  • @zoska,谢谢,现在很清楚了。

标签: c linux daemon


【解决方案1】:

我相信是的,如果父进程意外关闭,最好关闭所有 fd 以防止子进程成为孤立进程。

【讨论】:

  • 孤儿进程与打开的fds有什么关系?
  • @zoska 我假设他使用 fork() 函数来创建新进程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 2012-06-02
  • 1970-01-01
  • 2021-05-23
  • 2016-03-18
相关资源
最近更新 更多