From 84037bf6d28e0c0ec4e91fb5ca5716de8466fcc1 Mon Sep 17 00:00:00 2001 From: Daniel Theophanes Date: Sat, 2 Mar 2013 22:25:08 -0800 Subject: [PATCH] Make Stop() optional. --- stdservice/stdservice.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/stdservice/stdservice.go b/stdservice/stdservice.go index 0f3222b..72c8805 100644 --- a/stdservice/stdservice.go +++ b/stdservice/stdservice.go @@ -13,6 +13,7 @@ type Config struct { Name, DisplayName, LongDescription string // Called when the service starts or stops. + // Stop() may be nil. Start, Stop func() s service.Service @@ -62,7 +63,11 @@ func Run(c *Config) { fmt.Printf("Service \"%s\" removed.\n", c.DisplayName) case "run": c.l = ConsoleLogger{} - defer c.Stop() + defer func() { + if c.Stop != nil { + c.Stop() + } + }() c.Start() case "start": err = s.Start() @@ -87,7 +92,9 @@ func Run(c *Config) { return nil }, func() error { // stop - c.Stop() + if c.Stop != nil { + c.Stop() + } return nil }) if err != nil {