PID Namespace

PID Namespace

  • PID Namespace是用来隔离进程ID的,同样一个进程在不同的PID Namespace里可以拥有不同的pid,这样就可以理解在docker container里面,使用ps -ef经常发现,前台运行的进程号为1,但是在容器外发现同样的进程有不同的pid。
package main
import(
"os/exec"
"syscall"
"os"
"log"
)
func main(){

cmd:=exec.Command("sh")
cmd.SysProcAttr=&syscall.SysProcAttr{
Cloneflags:syscall.CLONE_NEWUTS|syscall.CLONE_NEWIPC| syscall.CLONE_NEWPID,
}
cmd.Stdin=os.Stdin
cmd.Stdout=os.Stdout
cmd.Stderr=os.Stderr
if err:=cmd.Run();err!=nil{
log.Fatal(err)
}
}


posted @ 2022-08-07 19:00  一生热爱  阅读(121)  评论(0编辑  收藏  举报