我正在尝试使用Sublime Text + GoSublime来进行Golang开发。
我正在使用Go(ListenAndServe("8000", &handler)
)中的网络服务器。
我遇到的问题是,当我运行Go进程(而另一个正在运行)时,第二个进程不起作用(因为端口已经在使用中)。
我想要发生的是,当我go run web.go
时,如果一个人已经在运行,请在运行此之前将其关闭。
Sublime Text 3的构建系统似乎没有跟踪先前的执行 - 所以我不知道终止的最佳方式。当我运行CTRL + B它没有阻塞时,它在另一个线程中执行构建系统 - 这意味着在执行下一个线程之前我不能CTRL + C.所以我要做的就是在启动下一个进程之前通过命令行终止现有进程。
所以我正在寻找Sublime Text构建系统配置的解决方案,或者甚至可以检查Go进程本身是否正在运行并终止进程。
想法?从终端来回交换有点烦人。
答案 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脚本来运行它。
希望它有所帮助。