27 lines
554 B
Go
27 lines
554 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
fmt.Printf("PID: %v\n", os.Getpid())
|
|
if len(os.Args) < 2 {
|
|
fmt.Println("Done.")
|
|
return
|
|
}
|
|
cp, err := os.StartProcess(os.Args[0], nil,
|
|
&os.ProcAttr{Files: []*os.File{nil, os.Stdout}},
|
|
)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
// Child process running independently at this point.
|
|
// We have its PID and can print it.
|
|
fmt.Printf("Child's PID: %v\n", cp.Pid)
|
|
if _, err = cp.Wait(); err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
}
|