如何在守望者重建中终止服务器

时间:2017-12-13 17:29:43

标签: watchman

我的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

在每次构建之前,守望者是否可以终止服务器并释放端口。

1 个答案:

答案 0 :(得分:1)

解决方案并不是真正可以直接控制守望者,因为它对你的服务器一无所知,因为它听起来就像你在构建结束时要求它一样,但应该很简单:拥有你的{{1目标负责拆除旧的服务器实例。

例如,在Makefile中:

run

您如何实施run: build ./stop-running-server ./start-server 取决于您。您可以尝试的几种常用技术如下所示:

  • stop-running-server用于杀死名称与服务器名称相匹配的进程
  • 让您的服务器将其流程ID写入文件,然后您可以pkill执行kill $(cat pidfile)