aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/kernel/kernel.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-11-16 12:42:30 +0100
committerDmitry Vyukov <dvyukov@google.com>2017-11-16 12:48:02 +0100
commitc4d43f47732557a32357a36d6c4276707e5994b1 (patch)
tree1a02777902c6dc71463b19cc285516f29638bf03 /pkg/kernel/kernel.go
parent4bc654f91141ca34b336a1f1ae164c851e66c47c (diff)
pkg/osutil: don't leace runaway processes
When manager is stopped there are sometimes runaway qemu processes still running. Set PDEATHSIG for all subprocesses. We never need child processes outliving parents.
Diffstat (limited to 'pkg/kernel/kernel.go')
-rw-r--r--pkg/kernel/kernel.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/pkg/kernel/kernel.go b/pkg/kernel/kernel.go
index 5b93ebaa9..2ec573540 100644
--- a/pkg/kernel/kernel.go
+++ b/pkg/kernel/kernel.go
@@ -61,12 +61,14 @@ func CreateImage(kernelDir, userspaceDir, cmdlineFile, sysctlFile, image, sshkey
return fmt.Errorf("failed to write script file: %v", err)
}
bzImage := filepath.Join(kernelDir, filepath.FromSlash("arch/x86/boot/bzImage"))
- env := []string{
- "SYZ_CMDLINE_FILE=" + osutil.Abs(cmdlineFile),
- "SYZ_SYSCTL_FILE=" + osutil.Abs(sysctlFile),
- }
- _, err = osutil.RunCmdEnv(time.Hour, env, tempDir, scriptFile, userspaceDir, bzImage)
- if err != nil {
+ cmd := osutil.Command(scriptFile, userspaceDir, bzImage)
+ cmd.Dir = tempDir
+ cmd.Env = append([]string{}, os.Environ()...)
+ cmd.Env = append(cmd.Env,
+ "SYZ_CMDLINE_FILE="+osutil.Abs(cmdlineFile),
+ "SYZ_SYSCTL_FILE="+osutil.Abs(sysctlFile),
+ )
+ if _, err = osutil.Run(time.Hour, cmd); err != nil {
return fmt.Errorf("image build failed: %v", err)
}
if err := osutil.CopyFile(filepath.Join(tempDir, "disk.raw"), image); err != nil {