summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--runsc/main.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/runsc/main.go b/runsc/main.go
index 0c9b9af78..c51b199aa 100644
--- a/runsc/main.go
+++ b/runsc/main.go
@@ -179,6 +179,10 @@ func main() {
if *debugLogFD > -1 {
f := os.NewFile(uintptr(*debugLogFD), "debug log file")
+ // Dup f to stderr so we capture stack traces on panic.
+ if err := syscall.Dup2(int(f.Fd()), int(os.Stderr.Fd())); err != nil {
+ cmd.Fatalf("error dup'ing fd %d to stderr: %v", f.Fd(), err)
+ }
e = log.MultiEmitter{e, log.GoogleEmitter{&log.Writer{Next: f}}}
} else if *debugLogDir != "" {
if err := os.MkdirAll(*debugLogDir, 0775); err != nil {
@@ -189,6 +193,10 @@ func main() {
if err != nil {
cmd.Fatalf("error opening debug log file in %q: %v", *debugLogDir, err)
}
+ // Dup f to stderr so we capture stack traces on panic.
+ if err := syscall.Dup2(int(f.Fd()), int(os.Stderr.Fd())); err != nil {
+ cmd.Fatalf("error dup'ing fd %d to stderr: %v", f.Fd(), err)
+ }
e = log.MultiEmitter{e, log.GoogleEmitter{&log.Writer{Next: f}}}
}