Skip to content

Commit

Permalink
modified: cmd/immortal/main.go
Browse files Browse the repository at this point in the history
	modified:   fork.go
  • Loading branch information
nbari committed Jul 20, 2016
1 parent a4bbe4c commit 179db9f
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 24 deletions.
17 changes: 10 additions & 7 deletions cmd/immortal/main.go
Expand Up @@ -125,13 +125,16 @@ func main() {
}
}

if pid, err = D.Fork(); err != nil {
log.Printf("Error while forking: %s", err)
os.Exit(1)
} else {
if pid > 0 {
fmt.Printf("%c %d\n", ir.Logo(), pid)
os.Exit(0)
// fork
if os.Getppid() > 1 {
if pid, err = D.Fork(); err != nil {
log.Printf("Error while forking: %s", err)
os.Exit(1)
} else {
if pid > 0 {
fmt.Printf("%c %d\n", ir.Logo(), pid)
os.Exit(0)
}
}
}

Expand Down
31 changes: 14 additions & 17 deletions fork.go
Expand Up @@ -7,22 +7,19 @@ import (
)

func (self *Daemon) Fork() (int, error) {
if os.Getppid() > 1 {
args := os.Args[1:]
cmd := exec.Command(os.Args[0], args...)
cmd.Env = append(cmd.Env, os.Environ()...)
cmd.Stdin = nil
cmd.Stdout = nil
cmd.Stderr = nil
cmd.ExtraFiles = nil
cmd.SysProcAttr = &syscall.SysProcAttr{
Setpgid: true,
Pgid: 0,
}
if err := cmd.Start(); err != nil {
return 0, err
}
return cmd.Process.Pid, nil
args := os.Args[1:]
cmd := exec.Command(os.Args[0], args...)
cmd.Env = append(cmd.Env, os.Environ()...)
cmd.Stdin = nil
cmd.Stdout = nil
cmd.Stderr = nil
cmd.ExtraFiles = nil
cmd.SysProcAttr = &syscall.SysProcAttr{
Setpgid: true,
Pgid: 0,
}
return 0, nil
if err := cmd.Start(); err != nil {
return 0, err
}
return cmd.Process.Pid, nil
}

0 comments on commit 179db9f

Please sign in to comment.