Skip to content

Instantly share code, notes, and snippets.

@calmh
Last active August 29, 2015 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save calmh/2f1612dfc67de65e8347 to your computer and use it in GitHub Desktop.
Save calmh/2f1612dfc67de65e8347 to your computer and use it in GitHub Desktop.
package main
import (
"crypto/rand"
"io"
"log"
"net"
"os"
"os/exec"
)
func main() {
// We need some randomness
bs := make([]byte, 8)
_, err := io.ReadFull(rand.Reader, bs)
if err != nil {
log.Println("random:", err)
} else {
log.Printf("Random bytes: % x", bs)
}
// We need to listen on a port
conn, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
log.Println("listen:", err)
} else {
log.Println("Listening on", conn.Addr())
}
if os.Getenv("ISCHILD") == "" {
log.Println("Trying once more as child")
cmd := exec.Command("./weirdness")
cmd.Stdout = os.Stdout
cmd.Stdin = os.Stdin
cmd.Stderr = os.Stderr
cmd.Env = []string{"ISCHILD=yes"}
err := cmd.Run()
if err != nil {
log.Fatal("run:", err)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment