diff --git a/alpine/packages/vsudd/etc/init.d/vsudd b/alpine/packages/vsudd/etc/init.d/vsudd index e9b89ddf1..7e987ff24 100755 --- a/alpine/packages/vsudd/etc/init.d/vsudd +++ b/alpine/packages/vsudd/etc/init.d/vsudd @@ -20,7 +20,6 @@ start() fi [ -n "${PIDFILE}" ] || PIDFILE=/var/run/vsudd.pid - [ -n "${LOGFILE}" ] || LOGFILE=/var/log/vsudd.log if [ -n "$SYSLOG_PORT" ] ; then # Can be inlined below once Windows defines syslog port @@ -31,9 +30,9 @@ start() --background \ --exec /sbin/vsudd \ --make-pidfile --pidfile ${PIDFILE} \ - --stderr "${LOGFILE}" --stdout "${LOGFILE}" \ -- -inport "${DOCKER_PORT}:unix:/var/run/docker.sock" \ - ${SYSLOG_OPT} + ${SYSLOG_OPT} \ + -detach eend $? "Failed to start vsudd" } diff --git a/alpine/packages/vsudd/main.go b/alpine/packages/vsudd/main.go index 7cc0639e2..94da4faf9 100644 --- a/alpine/packages/vsudd/main.go +++ b/alpine/packages/vsudd/main.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "log" + "log/syslog" "net" "os" "strconv" @@ -66,15 +67,24 @@ func main() { flag.Parse() if detach { - logFile, err := os.Create("/var/log/vsudd.log") + syslog, err := syslog.New(syslog.LOG_INFO|syslog.LOG_DAEMON, "vsudd") if err != nil { - log.Fatalln("Failed to open log file", err) + log.Fatalln("Failed to open syslog", err) } - log.SetOutput(logFile) + null, err := os.OpenFile("/dev/null", os.O_RDWR, 0) if err != nil { log.Fatalln("Failed to open /dev/null", err) } + + /* Don't do this above since we aren't yet forwarding + /* syslog (if we've been asked to) so the above error + /* reporting wants to go via the default path + /* (stdio). */ + + log.SetOutput(syslog) + log.SetFlags(0) + fd := null.Fd() syscall.Dup2(int(fd), int(os.Stdin.Fd())) syscall.Dup2(int(fd), int(os.Stdout.Fd()))