因此,要终止Ubuntu计算机上的进程,我可以向我的进程发送syscall.SIGTERM
信号,但这不适用于Windows。
为了解决这个问题,我已经转而使用syscall.TerminateProcess
,但当然Ubuntu不支持。
有没有办法终止一个可以在两个平台上运行的进程,或者我需要为unix和windows提供单独的代码吗?
答案 0 :(得分:3)
您可以使用runtime.GOOS在运行时确定操作系统。
由于您必须在某个时刻编译相应平台的代码,因此您可以非常轻松地编写特定于操作系统的代码。
所有相关文档均可在Go build中找到。
如果是文件的名称,则在剥离扩展名和可能的_test之后 后缀,匹配* _GOOS,* _GOARCH或* _GOOS_GOARCH 任何已知的操作系统和体系结构值,然后是文件 被认为具有需要那些的隐式构建约束 术语
这基本上意味着,例如只有在编译windows时才会包含名为mypackage_windows.go
的文件。