我想按需启动一个 web 服务器作为 inetd“tcp/wait”服务,它在一段可编程的不活动期后自行关闭。
许多 web 服务器已经支持 inetd "tcp/nowait" 模式,但是这种模式的缺点是需要为每个新连接创建一个新进程。因此,它比运行专用服务器守护程序更慢且更占用资源。
支持 inetd 的“tcp/wait”的 Web 服务器只会由 inetd 为第一个请求启动,然后使用相同的服务器实例服务任意数量的请求,直到在某个空闲时间段内没有请求发生,在这种情况下服务器实例会自动一旦下一个活动周期开始,终止并让inetd再次启动它。
这样的 tcp/wait inetd web 服务器在活动期间应该具有与专用 web 服务器(即永久运行)大致相同的效率。但是,它会在不活动时自动关闭,从而节省系统资源。
不规则的“反需求”驱动的关闭也将清除来自 Web 服务器和可能相关的 FGCI 服务(将与 Web 服务器一起终止)的任何内存泄漏。
我知道已经可以将 systemd 的套接字激活与 lighttpd 的 -i 选项结合使用来实现我想要的。
但是,我想要一个在没有 systemd 的情况下也可以工作的解决方案,这取决于运行的 Internet 超级服务器,无论后者是如何启动的(inetd/xinetd 由 sysvinit、runit、手动启动或 systemd 的套接字激活替换 inetd/xinetd )。