为了账号安全,请及时绑定邮箱和手机立即绑定

在 GoLang 中杀死 ListenAndServe

在 GoLang 中杀死 ListenAndServe

Go
慕姐8265434 2021-07-27 17:11:08
我正在尝试使用 Sublime Text + GoSublime 进行 Golang 开发。我正在使用 Go ( ListenAndServe("8000", &handler)) 中的网络服务器。我遇到的问题是,当我运行 Go 进程时(而另一个进程正在运行),第二个进程不起作用(因为端口已在使用中)。我想要发生的是,当我go run web.go,如果一个人已经在运行,在运行这个之前关闭它。Sublime Text 3 的构建系统似乎没有跟踪之前的执行——所以我不知道终止的最佳方式。当我运行 CTRL+B 时,它不会阻塞,它会在另一个线程中执行构建系统——这意味着在执行下一个线程之前我不能 CTRL+C。所以我要做的是在开始下一个进程之前通过命令行终止现有进程。因此,我正在寻找具有 Sublime Text 构建系统配置的解决方案,或者甚至可能让 Go 进程本身检查以查看是否正在运行并终止该进程。想法?从终端来回交换有点烦人。
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

不确定我是否理解问题。

但是在 sublime text build 控制台中,有 tskill 命令可以终止从控制台启动的活动任务。因此,您可以键入Ctrl+B以调用控制台并键入tskill以终止正在运行的 web.go 任务。还有其他别名tskill <task ID>, task replay or task go。参考在这里。之后,您可以运行其他命令,包括 go run。

更重要的是有一个replay命令。“这就像运行,但试图在运行前取消任何活动的执行”。我觉得它看起来像你想要的。

此外,Gosublime 命令外壳具有 sh 命令模式。它非常灵活,例如键入sh killall web;go run web.go或运行 shell 脚本来运行它。


查看完整回答
反对 回复 2021-08-02
  • 1 回答
  • 0 关注
  • 316 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信