veyron/lib/modules: Clean up stderr files on Shutdown
Change-Id: I35cedaacec3dfd211b5a36fa9333a76abd243796
diff --git a/lib/modules/exec.go b/lib/modules/exec.go
index 74acf2f..2d517d7 100644
--- a/lib/modules/exec.go
+++ b/lib/modules/exec.go
@@ -196,6 +196,7 @@
// Transcribe stderr.
outputFromFile(eh.stderr, stderr)
+ os.Remove(eh.stderr.Name())
return procErr
}
diff --git a/lib/modules/func.go b/lib/modules/func.go
index 8fd0523..381c9de 100644
--- a/lib/modules/func.go
+++ b/lib/modules/func.go
@@ -121,13 +121,15 @@
fh.mu.Unlock()
// Safe to close stderr now.
+ stderrName := stderr.Name()
stderr.Close()
+ defer os.Remove(stderrName)
if stderr_w != nil {
- if stderr, err := os.Open(stderr.Name()); err == nil {
+ if stderr, err := os.Open(stderrName); err == nil {
io.Copy(stderr_w, stderr)
stderr.Close()
} else {
- fmt.Fprintf(os.Stderr, "failed to open %q: %s\n", stderr.Name(), err)
+ fmt.Fprintf(os.Stderr, "failed to open %q: %s\n", stderrName, err)
}
}
diff --git a/lib/modules/util.go b/lib/modules/util.go
index b38e767..b2a62fa 100644
--- a/lib/modules/util.go
+++ b/lib/modules/util.go
@@ -16,7 +16,7 @@
func newLogfile(prefix, name string) (*os.File, error) {
nameHash := adler32.Checksum([]byte(name))
- f, err := ioutil.TempFile("", fmt.Sprintf("__modules__%s-%x", prefix, nameHash))
+ f, err := ioutil.TempFile("", fmt.Sprintf("__modules__%s-%x-", prefix, nameHash))
if err != nil {
return nil, err
}