1 Star 1 Fork 34

mountfeng / distributed-gosuv

forked from haiker / sudis 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
sigchld_unix.go 592 Bytes
一键复制 编辑 原始数据 按行查看 历史
haiker 提交于 2017-12-03 19:46 . 分布式实现
// +build linux darwin
package main
import (
"log"
"os"
"os/signal"
"syscall"
)
func init() {
go watchChildSignal()
}
func watchChildSignal() {
var sigs = make(chan os.Signal, 3)
signal.Notify(sigs, syscall.SIGCHLD)
for {
<-sigs
reapChildren()
}
}
func reapChildren() {
for {
var wstatus syscall.WaitStatus
wpid, err := syscall.Wait4(-1, &wstatus, syscall.WNOHANG, nil)
if err != nil {
log.Printf("syscall.Wait4 call failed: %v", err)
break
}
if wpid != 0 {
log.Printf("reap dead child: %d, wstatus: %#08x", wpid, wstatus)
} else {
break
}
}
}
Go
1
https://gitee.com/mountfeng/distributed-gosuv.git
git@gitee.com:mountfeng/distributed-gosuv.git
mountfeng
distributed-gosuv
distributed-gosuv
master

搜索帮助