diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-11-16 12:42:30 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-11-16 12:48:02 +0100 |
| commit | c4d43f47732557a32357a36d6c4276707e5994b1 (patch) | |
| tree | 1a02777902c6dc71463b19cc285516f29638bf03 /pkg/kernel/kernel.go | |
| parent | 4bc654f91141ca34b336a1f1ae164c851e66c47c (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.go | 14 |
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 { |
