我的Makefile中有一个简单的监视目标
watch:
watchman-make -p '**/*.go' -t run
目标run
启动Web服务器并绑定到端口。文件更改后,将执行run
,但会收到错误。
bind: address already in use
这是因为先前启动的Web服务器未终止。 我看到很少与此相关的线程,但没有给出解决方案。
https://github.com/facebook/watchman/issues/246 https://github.com/facebook/watchman/issues/447
在每次构建之前,守望者是否可以终止服务器并释放端口。
答案 0 :(得分:1)
解决方案并不是真正可以直接控制守望者,因为它对你的服务器一无所知,因为它听起来就像你在构建结束时要求它一样,但应该很简单:拥有你的{{1目标负责拆除旧的服务器实例。
例如,在Makefile中:
run
您如何实施run: build
./stop-running-server
./start-server
取决于您。您可以尝试的几种常用技术如下所示:
stop-running-server
用于杀死名称与服务器名称相匹配的进程pkill
执行kill $(cat pidfile)