第一種:先查看端口占用情況,然後kill -9
比如監控的是8000端口
lsof -i:8000
#或加個tcp查找tcp服務
lsof -i tcp:8080
#找到對應的端口後kill掉
kill -9 900
第二種:
killall 程序名稱
第三種:使用supervisor管理
其他方法參考:
https://segmentfault.com/q/1010000005959105
http://siddontang.com/2015/01/25/stop-server-gracefully/
第四種:
如果http監聽,可以使用ShutDown()
s := &http.Server{
Addr: “:8080”,
Handler: http.DefaultServeMux,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
s.ListenAndServe()
s.Shutdown(nil)
注:如果要生成指定名稱的進程,可以使用:
go build -o my main.go
#然後
killall -9 my