Go - 关闭外部应用程序

我在 OSX 机器上使用 Go 并尝试制作一个程序来打开外部应用程序,然后几秒钟后关闭它 - 应用程序,而不是退出 Go 脚本。

我正在使用https://github.com/skratchdot/open-golang上提供的库来启动应用程序,它运行良好。我也已经有超时运行。但是当我必须关闭应用程序时问题就来了。

有人会提示我如何退出应用程序吗?

提前致谢。


子衿沉夜
浏览 241回答 2
2回答

哔哔one

谢谢你们的帮助。我将能够使用以下代码完成我正在尝试的操作。cmd := exec.Command(path string)&nbsp; &nbsp; err := cmd.Start()&nbsp; if err != nil {&nbsp; &nbsp; log.Printf("Command finished with error: %v", err)&nbsp; }&nbsp; done := make(chan error, 1)&nbsp; go func() {&nbsp; &nbsp; done <- cmd.Wait()&nbsp; }()&nbsp; select {&nbsp; case <-time.After(30 * time.Second):&nbsp; &nbsp; &nbsp; // Kills the process after 30 seconds&nbsp; &nbsp; if err := cmd.Process.Kill(); err != nil {&nbsp; &nbsp; &nbsp; log.Fatal("failed to kill: ", err)&nbsp; &nbsp; }&nbsp; &nbsp; <-done // allow goroutine to exit&nbsp; &nbsp; log.Println("process killed")&nbsp; &nbsp; indexInit()&nbsp; &nbsp; case err := <-done:&nbsp; &nbsp; &nbsp; if err!=nil{&nbsp; &nbsp; &nbsp; &nbsp; log.Printf("process done with error = %v", err)&nbsp; &nbsp; &nbsp; }&nbsp; }&nbsp; &nbsp; if err != nil {&nbsp; &nbsp; &nbsp; &nbsp; log.Fatal(err)&nbsp; &nbsp; }&nbsp; &nbsp; log.Printf("Waiting for command to finish...")&nbsp; //timer() // The time goes by...&nbsp; &nbsp; err = cmd.Wait()}按照@JimB 的建议,我在使用os/exec包启动应用程序后立即放置了它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go