bra*_*ter 6 network-programming inetd
谁能给出一组简明的现实世界考虑因素,以推动选择是否使用 inetd 来管理充当网络服务器的程序?
(如果使用inetd,我认为它会改变程序中网络代码的要求,所以我认为它肯定与编程相关,而不是一般IT)
这个问题是基于我见过的一个实现,该实现使用由 inetd 管理的控制程序来启动一个网络监听器,然后该监听器永远运行并承受恒定的重负载。它似乎不太适合教科书 inetd 使用配置文件(按需、不经常使用、轻量级),这让我对更普遍的问题产生了兴趣。
这取决于您的服务的使用模式。如果您的守护进程的启动时间很短,并且您希望它不经常使用,那么 inted 可能是一个不错的选择。它减少甚至消除了编写任何额外网络代码的需要。
如果您的守护进程更重量级或更频繁使用,那么您最好将其独立编写。您可以轻松地编写init.d
脚本和一些conf.d
配置来配合它,并且管理员管理起来并不困难。如今,大多数编程语言都具有易于使用的套接字库,因此在许多情况下,网络代码甚至可能并不那么困难。
根据我的经验,我发现现在很少有管理员熟悉 inetd。大多数守护进程只提供自己的初始化脚本。事实上,在我管理的几百个系统中,我根本想不出有哪个系统是通过 inetd 启动任何东西的。这是值得考虑的事情。