Skip to content

Instantly share code, notes, and snippets.

@crosbymichael
Created June 1, 2016 22:32
Show Gist options
  • Select an option

  • Save crosbymichael/9b0d7747dbbabc378e55bce9f73fbe7c to your computer and use it in GitHub Desktop.

Select an option

Save crosbymichael/9b0d7747dbbabc378e55bce9f73fbe7c to your computer and use it in GitHub Desktop.

Revisions

  1. crosbymichael created this gist Jun 1, 2016.
    40 changes: 40 additions & 0 deletions create_start.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,40 @@
    package main

    import (
    "encoding/json"
    "log"
    "os"
    "os/exec"

    "github.com/docker/containerd/osutils"
    )

    func main() {
    osutils.SetSubreaper(1)
    cmd := exec.Command("runc", "create", "test")
    cmd.Stdin = os.Stdin
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr
    if err := cmd.Run(); err != nil {
    log.Fatal(err)
    }
    var s struct {
    Pid int `json:"pid"`
    }
    out, err := exec.Command("runc", "state", "test").CombinedOutput()
    if err != nil {
    log.Fatal(err)
    }
    if err := json.Unmarshal(out, &s); err != nil {
    log.Fatal(err)
    }
    cmd = exec.Command("runc", "start", "test")
    if err := cmd.Run(); err != nil {
    log.Fatal(err)
    }
    p, err := os.FindProcess(s.Pid)
    if err != nil {
    log.Fatal(err)
    }
    p.Wait()
    }