Revert "Proper signal handling in monitor process"

This reverts commit 33e9a88b56.
This commit is contained in:
Jakob Borg
2014-09-06 06:49:51 +02:00
parent 97cb3fa5a5
commit 5b51f4d058
4 changed files with 12 additions and 39 deletions
+3 -22
View File
@@ -9,11 +9,9 @@ import (
"io"
"os"
"os/exec"
"os/signal"
"path/filepath"
"strings"
"sync"
"syscall"
"time"
)
@@ -35,10 +33,6 @@ func monitorMain() {
args := os.Args
var restarts [countRestarts]time.Time
sign := make(chan os.Signal, 1)
sigTerm := syscall.Signal(0xf)
signal.Notify(sign, os.Interrupt, sigTerm, os.Kill)
for {
if t := time.Since(restarts[0]); t < loopThreshold {
l.Warnf("%d restarts in %v; not retrying further", countRestarts, t)
@@ -74,23 +68,10 @@ func monitorMain() {
go copyStderr(stderr)
go copyStdout(stdout)
exit := make(chan error)
go func() {
exit <- cmd.Wait()
}()
select {
case s := <-sign:
l.Infof("Signal %d received; exiting", s)
cmd.Process.Kill()
<-exit
err = cmd.Wait()
if err == nil {
// Successfull exit indicates an intentional shutdown
return
case <-exit:
if err == nil {
// Successfull exit indicates an intentional shutdown
return
}
}
l.Infoln("Syncthing exited:", err)