为了账号安全,请及时绑定邮箱和手机立即绑定

Go - 关闭外部应用程序

Go - 关闭外部应用程序

Go
子衿沉夜 2021-10-18 09:53:56
我在 OSX 机器上使用 Go 并尝试制作一个程序来打开外部应用程序,然后几秒钟后关闭它 - 应用程序,而不是退出 Go 脚本。我正在使用https://github.com/skratchdot/open-golang上提供的库来启动应用程序,它运行良好。我也已经有超时运行。但是当我必须关闭应用程序时问题就来了。有人会提示我如何退出应用程序吗?提前致谢。
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

谢谢你们的帮助。我将能够使用以下代码完成我正在尝试的操作。


cmd := exec.Command(path string)

    err := cmd.Start()

  if err != nil {

    log.Printf("Command finished with error: %v", err)

  }

  done := make(chan error, 1)

  go func() {

    done <- cmd.Wait()

  }()

  select {

  case <-time.After(30 * time.Second):      // Kills the process after 30 seconds

    if err := cmd.Process.Kill(); err != nil {

      log.Fatal("failed to kill: ", err)

    }

    <-done // allow goroutine to exit

    log.Println("process killed")

    indexInit()

    case err := <-done:

      if err!=nil{

        log.Printf("process done with error = %v", err)

      }

  }

    if err != nil {

        log.Fatal(err)

    }

    log.Printf("Waiting for command to finish...")

  //timer() // The time goes by...

    err = cmd.Wait()

}

按照@JimB 的建议,我在使用os/exec包启动应用程序后立即放置了它。


查看完整回答
反对 回复 2021-10-18
  • 2 回答
  • 0 关注
  • 240 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信