为什么Linux中有时会有多个守护进程?

时间:2013-12-29 10:39:33

标签: linux ubuntu init.d

我注意到在我的Ubuntu系统上运行了同一个守护进程的三个实例:

root      1167  0.0  0.0 122556  5808 ?        Ss   13:53   0:00 smbd -F
root      1371  0.0  0.0 122540  1632 ?        S    13:53   0:00 smbd -F
root      1733  0.0  0.0 125104  4704 ?        S    13:58   0:00 smbd -F

我的问题是这是否正常以及为什么会发生。

我的另一个问题是,如果不正常,我该在哪里纠正它?

谢谢!

2 个答案:

答案 0 :(得分:3)

来自smbd manual;

  

只要客户端请求会话,就会创建会话。 每个客户端都会获得每个会话的服务器副本。 此副本随后为该会话期间客户端建立的所有连接提供服务。当关闭来自其客户端的所有连接时,该客户端的服务器副本将终止。

换句话说,有一个以上的活动smbd会话(也称为Windows文件共享会话)对你的linux机器有效,并且运行多个进程是完全正常的。

答案 1 :(得分:1)

是的,这很正常。这是用C编写的Unix守护进程常见的多进程模型。例如,您也会发现httpd(Apache)正在发生这种情况。 prefork模式下的httpd,在任何请求被收到之前预先分配一些进程,以避免在实际接收请求时出现fork延迟。