diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-09-03 13:45:38 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-09-03 13:45:38 -0600 |
commit | 5a9bf43f0e5e7904b64c432d67d3226e2a7ddfca (patch) | |
tree | 134f8dd308305d364508034e6c389faa9d5dca21 /src/nslcd_systemd/nslcd_systemd.go | |
parent | 3ab61b3e5032805784343dcab16f94f8252a88c4 (diff) |
Use systemd/lsb exit codes, consistently
Diffstat (limited to 'src/nslcd_systemd/nslcd_systemd.go')
-rw-r--r-- | src/nslcd_systemd/nslcd_systemd.go | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/nslcd_systemd/nslcd_systemd.go b/src/nslcd_systemd/nslcd_systemd.go index 3d87310..fec60c3 100644 --- a/src/nslcd_systemd/nslcd_systemd.go +++ b/src/nslcd_systemd/nslcd_systemd.go @@ -8,6 +8,7 @@ import ( "os/signal" sd "sd_daemon" "sd_daemon/logger" + "sd_daemon/lsb" "sync" "syscall" ) @@ -60,7 +61,7 @@ func handler(conn *net.UnixConn, backend nslcd_proto.Backend) { } } -func Main(backend Backend) int { +func Main(backend Backend) uint8 { var err error = nil var socket net.Listener = nil defer func() { @@ -73,7 +74,7 @@ func Main(backend Backend) int { if err != nil { logger.Err("%s", err.Error()) sd.Notify(false, "STOPPING=1") - return 1 + return lsb.EXIT_NOTRUNNING } sigs := make(chan os.Signal, 1) @@ -84,12 +85,13 @@ func Main(backend Backend) int { for { conn, err := socket.Accept() if err != nil { - logger.Notice("%s", err.Error()) + logger.Notice("Accept: %s", err.Error()) } sock <- conn.(*net.UnixConn) } }() + exit := lsb.EXIT_SUCCESS var wg sync.WaitGroup sd.Notify(false, "READY=1") Loop: @@ -98,11 +100,15 @@ Loop: case sig := <-sigs: switch sig { case syscall.SIGTERM: - sd.Notify(false, "STOPPING=1") break Loop case syscall.SIGHUP: sd.Notify(false, "RELOADING=1") - backend.Reload() + err := backend.Reload() + if err != nil { + logger.Notice("Reload: %s", err.Error()) + exit = lsb.EXIT_NOTRUNNING + break Loop + } sd.Notify(false, "READY=1") } case conn := <-sock: @@ -113,7 +119,8 @@ Loop: }() } } + sd.Notify(false, "STOPPING=1") wg.Wait() - return 0 + return exit } |