跨平台的方式来终止Go中的进程

时间:2018-03-28 06:04:34

标签: windows unix go

因此,要终止Ubuntu计算机上的进程,我可以向我的进程发送syscall.SIGTERM信号,但这不适用于Windows。 为了解决这个问题,我已经转而使用syscall.TerminateProcess,但当然Ubuntu不支持。 有没有办法终止一个可以在两个平台上运行的进程,或者我需要为unix和windows提供单独的代码吗?

1 个答案:

答案 0 :(得分:3)

您可以使用runtime.GOOS在运行时确定操作系统。

由于您必须在某个时刻编译相应平台的代码,因此您可以非常轻松地编写特定于操作系统的代码。

所有相关文档均可在Go build中找到。

  

如果是文件的名称,则在剥离扩展名和可能的_test之后   后缀,匹配* _GOOS,* _GOARCH或* _GOOS_GOARCH   任何已知的操作系统和体系结构值,然后是文件   被认为具有需要那些的隐式构建约束   术语

这基本上意味着,例如只有在编译windows时才会包含名为mypackage_windows.go的文件。

相关问题