守护进程应该通过inetd运行多复杂?

守护进程通过inetd启动的一般规则是什么? 目前,在我的服务器上, sshdapachesendmail被设置为始终运行,其中简单的* NIX服务被设置为由inetd启动。

我是唯一一个在我的计算机上使用ssh的人,并且入侵尝试不是问题,因为我将它运行在非标准端口上,而且我的HTTP服务器每天可能获得5次非GoogleBot 。

我的问题是,与通过超级服务器守护进程运行复杂守护进程(如sshd或apache)相关的性能命中有什么好处,以及以这种方式运行自己的守护进程(如果有的话)是成功还是失败?

情况将在每个案件的情况下。 一般来说,除非你有特定的理由在超级服务器上运行,否则最好不要。 在超级服务器内运行会增加额外的负载,因为每个连接都会产生一个新的进程。

Apache的devise始终在运行。 它是线程化的,智能地pipe理系统资源。

inetd和其他超级服务器最初更适合于无法与其本地代码中的套接字进行交互的守护进程。

守护进程的复杂性并不是真正的问题。 使用频率是。 xinetd允许你获得增加的日志logging,并根据configuration额外的一层安全性。 你提到的所有守护进程都可以在一些configuration下在超级服务器下运行。

如果你很less使用守护进程,考虑在超级服务器下运行它。 这将允许您减less运行的守护程序的数量和由此产生的开销。

inetd和xinetd有一些非常简单的内置服务。除非需要,否则这些服务应该被禁用。 其他服务没有守护进程接口,所以必须由超级服务器运行。 许多具有networking守护进程function的服务都有标志,告诉他们在inetd下运行。

在超级服务器下运行守护进程之前,您应该考虑启动开销和configuration稳定性。 大量的启动开销是运行一个很less使用的服务作为守护进程的原因之一。 您列出的服务通常在安装时使用相对较多,因此作为守护程序运行。

Apache被优化为作为守护进程运行。 如果使用得多,最好作为deamon运行。

邮件服务器通常为每个来电分配一个新的服务器,这在大多数操作系统上开销很小。 如果它不作为邮件集线器或从远程站点传递,它不应该在本地主机以外的任何地址监听。 除非在服务器上运行使用TCP / IP通过本地主机发送邮件的程序,否则不需要这样做。

除了用于encryption的随机数据之外,sshd具有相对较低的启动开销。 它确实需要一些随机数据,如果在超级服务器下运行,这些数据可能不是很方便。