0
点赞
收藏
分享

微信扫一扫

Docker与Linux Namespace:IPC Namesapce

天涯学馆 2021-09-24 阅读 51
PaaS

概述

IPC Namespace 是用来隔离 System V IPC 和POSIX message queues.每一个IPC Namespace都有他们自己的System V IPC 和POSIX message queue。

源码

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,
    }
    cmd.Stdin = os.Stdin
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr

    if err := cmd.Run(); err != nil {
        log.Fatal(err)
    }
}

测试结果:

go run ipc.go
sh-4.2#ipcs -q
------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages

//创建一个message queue
sh-4.2# ipcmk -Q
Message queue id: 0
sh-4.2# ipcs -q
------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    
0x15aeef97 0          root       644        0            0           
//重新打开一个终端,查看宿主机的ipc
[root@VM_0_10_centos ~]# ipcs -q
------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    
举报

相关推荐

0 条评论