本文整理匯總了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)
}