【发布时间】:2011-04-06 11:38:42
【问题描述】:
我知道守护进程主要在后台运行,即它们需要的用户交互非常少。
Wikipedia lists一些常见的守护进程类型:
- 与控制终端分离
- 成为会议负责人
- 成为流程组组长
- 通过分叉和退出(一次或两次)留在后台。有时,该过程需要成为会话负责人。它还允许父进程继续其正常执行。这个成语有时可以用“fork off and die”来概括
- 将根目录 ("/") 设置为当前工作目录,这样进程就不会保留任何正在使用的目录,这些目录可能位于已挂载的文件系统上(允许将其卸载)。
- 将 umask 更改为 0 以允许 open()、creat() 等。调用以提供自己的权限掩码,而不依赖于调用者的 umask
- 在执行时关闭所有被父进程打开的继承打开文件,包括文件描述符 0、1 和 2(stdin、stdout、stderr)。稍后会打开所需的文件。
- 使用日志文件、控制台或 /dev/null 作为标准输入、标准输出和标准错误
我想知道除了我在第一行中提到的那个之外,守护进程的行为与正常进程是否存在差异。两种流程都各司其职,并根据用户完成工作所需的交互量与用户进行交互。
还有比这更多的守护进程吗?
【问题讨论】:
标签: operating-system process daemon