仅在真正需要时启动服务

仅在真正需要时启动服务

我使用台式机作为开发“服务器”,因此我安装了 mysql+apache+其他东西。这导致启动时间更长,而且由于我运行了所有这些服务,内存消耗也很高。

是否存在一种软件,只有当其端口被访问时才能启动给定的服务?

说:仅当 localhost:80 上有请求时才启动 apache,等等。

答案1

如果你真的想这样做,你也许可以使用 knockd 来做这件事。我还安装了不少守护进程用于各种用途,我倾向于在启动时禁用它们,并在需要时手动启动它们。执行此操作的命令是:

sudo update-rc.d $serviceName disable

然后显而易见的是

sudo service $serviceName start

当您真正想让它运行的时候。

我脑子里能想到的 knockd conf 看起来是这样的:

[ApacheHTTP]
    sequence = 80
    seq_timeout = 10
    command = /usr/bin/service apache2 start
    tcpflags = syn
    cmd_timeout = 10

等等,等等,对于您想要的所有服务。但是,这并不会自动停止它们。如果您愿意,您可以添加一行“stop_command = /usr/bin/service apache2 stop”,但这可能会在您不知情的情况下关闭它。

相关内容