在开发环境下,需要启动一堆杂七杂八的服务,比如mysql, postgresql, memcache, redis, nginx, elastic-search, solr, ...
mysql
postgresql
memcache
redis
nginx
elastic-search
solr
我希望平时可以不用开启,等需要的时候(访问到特定端口),会根据访问状况,自动把服务启动起来。 类似于pow,请问有没有这样的一个工具?
如果没有的话,写起来应该也不会很复杂吧?监听系统端口访问,然后设置一些规则,如果触发了,就启动对应的服务。
好奇怪的需求,开机都启动不就好了么?机器慢了就升级机器,把精力都放在开发上。
inetd/xinetd 提供的机制看起来可以满足你的要求,不过近些年没什么人用它,也就没几个服务支持它了。。。 比如 mysql,就不支持通过 inetd 来 start on demand。
楼主这么做的原因是什么呢? 这些服务本身占用非常少的内存,如果等访问时才启用,会耗费很多启动时间。
no zuo no die. 一个 foreman 搞定。
@linjunhalida 我猜 Fig 一定能满足你的需求。把所有服务都塞到 docker 里面,一切安静了。 https://orchardup.github.io/fig/rails.html
Foreman + Profile.local
听起来楼主的需求只要用 systemd 就好了....不过这是 linux 下的东西........
不过有看到 systemd 的介绍说,the feature of socket activation is inspired by launchd, the apple project. 所以楼主也可以看看 launchd 有没有写法也是支持 socket activation 这样功能..
#5 楼 @xds2000 Docker 版本的 foreman?
@iBachue 可以这麽理解。参考这里:http://coder.858go.com/post/90258818197/rails-fig-docker
找到了,这里有写:http://www.oschina.net/translate/deploying-node-js-with-systemd?print
launchd