杀死GoLang的ListenAndServe

时间:2014-03-20 18:38:42

标签: go sublimetext2 sublimetext sublimetext3

我正在尝试使用Sublime Text + GoSublime来进行Golang开发。

我正在使用Go(ListenAndServe("8000", &handler))中的网络服务器。

我遇到的问题是,当我运行Go进程(而另一个正在运行)时,第二个进程不起作用(因为端口已经在使用中)。

我想要发生的是,当我go run web.go时,如果一个人已经在运行,请在运行此之前将其关闭。

Sublime Text 3的构建系统似乎没有跟踪先前的执行 - 所以我不知道终止的最佳方式。当我运行CTRL + B它没有阻塞时,它在另一个线程中执行构建系统 - 这意味着在执行下一个线程之前我不能CTRL + C.所以我要做的就是在启动下一个进程之前通过命令行终止现有进程。

所以我正在寻找Sublime Text构建系统配置的解决方案,或者甚至可以检查Go进程本身是否正在运行并终止进程。

想法?从终端来回交换有点烦人。

1 个答案:

答案 0 :(得分:5)

不确定我是否理解这个问题。

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

还有一个replay命令。 &#34;它就像运行但尝试在运行&#34;之前取消任何活动的执行。我觉得它看起来像你想要的。

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

希望它有所帮助。