我使用台式机作为开发“服务器”,因此我安装了 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”,但这可能会在您不知情的情况下关闭它。