From a5bad9d6ec4ce526015403c9565efea58d2867ea Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 3 Sep 2015 16:59:14 -0600 Subject: Use a defer/recover block to have the exit status on panic match LSB. --- sd_daemon/lsb/exit-status.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sd_daemon/lsb/exit-status.go b/sd_daemon/lsb/exit-status.go index ba5b68b..41eaafd 100644 --- a/sd_daemon/lsb/exit-status.go +++ b/sd_daemon/lsb/exit-status.go @@ -1,5 +1,10 @@ package lsb +import ( + "os" + "sd_daemon/logger" +) + /* systemd daemon(7) recommends using the exit codes defined in the * "LSB recomendations for SysV init scripts"[1]. * @@ -60,3 +65,10 @@ const ( EXIT_BUS_ENDPOINT uint8 = 236 EXIT_SMACK_PROCESS_LABEL uint8 = 237 ) + +func Recover() { + if r := recover(); r != nil { + logger.Err("panic: %v", r) + os.Exit(int(EXIT_FAILURE)) + } +} -- cgit v1.1-4-g5e80