让golang http服务器重新运行

时间:2014-07-15 23:54:51

标签: go

我尝试使用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。

1 个答案:

答案 0 :(得分:0)

一个已经在端口8080上运行的进程,这就是为什么它无法重新运行的原因,请转到活动监视器,以适合您的情况将其命名为(my_server),然后将其退出。