diff --git a/backend.go b/backend.go index 0f65092..518140f 100644 --- a/backend.go +++ b/backend.go @@ -74,8 +74,16 @@ func shrinkit(data []byte) (*image.Image, error) { var backendhooks []func() +func orphancheck() { + var b [1]byte + os.Stdin.Read(b[:]) + dlog.Printf("backend shutting down") + os.Exit(0) +} + func backendServer() { dlog.Printf("backend server running") + go orphancheck() shrinker := new(Shrinker) srv := rpc.NewServer() err := srv.Register(shrinker) @@ -104,10 +112,15 @@ func backendServer() { } func runBackendServer() { + r, _, err := os.Pipe() + if err != nil { + elog.Panicf("can't pipe: %s", err) + } proc := exec.Command(os.Args[0], reexecArgs("backend")...) proc.Stdout = os.Stdout proc.Stderr = os.Stderr - err := proc.Start() + proc.Stdin = r + err = proc.Start() if err != nil { elog.Panicf("can't exec backend: %s", err) } diff --git a/honk.go b/honk.go index 749363c..a0dcbb6 100644 --- a/honk.go +++ b/honk.go @@ -100,7 +100,7 @@ type Honk struct { Mentions []Mention Badonks []Badonk Wonkles string - Guesses template.HTML + Guesses template.HTML } type Badonk struct {