【发布时间】:2020-11-23 15:03:33
【问题描述】:
我正在尝试在源文件更改时使用rerun 重新启动 go http 服务器,但重新启动总是无法启动。
简单的服务器
package main
import (
"net/http"
"fmt"
"log"
"html"
)
func main() {
http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
})
log.Fatal(http.ListenAndServe(":8080", nil))
}
命令行输出
$ rerun -p "**/*.{go,html}" go run my_server.go
16:49:24 [rerun] Rerun_test launched
16:49:26 [rerun] Watching . for **/*.{go,html} using Darwin adapter
16:50:17 [rerun] Change detected: 1 modified
16:50:17 [rerun] Sending signal TERM to 75688
16:50:17 [rerun] Rerun_test restarted
2014/07/15 16:50:17 listen tcp :8080: bind: address already in use
exit status 1
16:50:19 [rerun] Rerun_test Launch Failed
我怎样才能让它工作,或者为什么服务器在重新启动时不能绑定到端口?
另外,我使用的是 OSX 10.9。
【问题讨论】:
-
安装 gin 并使用 PORT Env 变量github.com/codegangsta/gin
-
github.com/pilu/fresh 也是另一个不错的选择。只需在与您的代码相同的目录中运行“新鲜”即可。
标签: go