本文整理汇总了Golang中os.Process.Release方法的典型用法代码示例。如果您正苦于以下问题:Golang Process.Release方法的具体用法?Golang Process.Release怎么用?Golang Process.Release使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类os.Process
的用法示例。
在下文中一共展示了Process.Release方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: stopServer
func stopServer(proc *os.Process) {
err := proc.Kill()
if err != nil {
panic(err.Error())
}
proc.Release()
}
示例2: startDaemon
func startDaemon() error {
var proc *os.Process
dir, err := os.Getwd()
if err != nil {
return err
}
procattr := os.ProcAttr{Dir: dir, Env: os.Environ(), Files: []*os.File{nil, nil, nil}}
proc, err = os.StartProcess("helloworld.exe", nil, &procattr)
if err != nil {
return err
}
return proc.Release()
}
示例3: KillWithChildren
// KillWithChildren kills the process
// and tries to kill its all children (process group)
func KillWithChildren(p *os.Process, interrupt bool) (err error) {
Log.Debug("killWithChildren", "process", p)
if p == nil {
return
}
Log.Info("killWithChildren", "pid", p.Pid, "interrupt", interrupt)
defer func() {
if r := recover(); r != nil {
Log.Warn("PANIC in kill", "process", p, "error", r)
}
}()
defer p.Release()
if p.Pid == 0 {
return nil
}
if interrupt {
defer p.Signal(os.Interrupt)
return Pkill(p.Pid, os.Interrupt)
}
defer p.Kill()
return Pkill(p.Pid, os.Kill)
}