1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-06 06:26:46 +00:00

feature(worker): use cgroup track job process, so that they can be all-killed

这个提交包含在:
bigeagle
2016-04-29 16:05:15 +08:00
父节点 41e1f263a5
当前提交 924fda6dd8
共有 11 个文件被更改,包括 250 次插入17 次删除

查看文件

@@ -33,6 +33,8 @@ type mirrorProvider interface {
Terminate() error
// job hooks
IsRunning() bool
// Cgroup
Cgroup() *cgroupHook
AddHook(hook jobHook)
Hooks() []jobHook
@@ -63,7 +65,8 @@ type baseProvider struct {
logFile *os.File
hooks []jobHook
cgroup *cgroupHook
hooks []jobHook
}
func (p *baseProvider) Name() string {
@@ -117,6 +120,9 @@ func (p *baseProvider) LogFile() string {
}
func (p *baseProvider) AddHook(hook jobHook) {
if cg, ok := hook.(*cgroupHook); ok {
p.cgroup = cg
}
p.hooks = append(p.hooks, hook)
}
@@ -124,6 +130,10 @@ func (p *baseProvider) Hooks() []jobHook {
return p.hooks
}
func (p *baseProvider) Cgroup() *cgroupHook {
return p.cgroup
}
func (p *baseProvider) prepareLogFile() error {
if p.LogFile() == "/dev/null" {
p.cmd.SetLogFile(nil)