Dmidecode里面去的程序在运行中。pod

0

的问题

我有一个程序运行在docker容器。 我需要输出的命令dmidecode. 但其未来的空白。

去:

func主(){

    cmd := exec.Command("dmidecode","-t 1")
    x,_ := cmd.Output()
    fmt.Println("output =======", string(x))

}

Docker运行:

docker运行--设备/dev/mem/dev/mem--cap-加SYS_RAWIO-p8086:8086-这my_img:v1.0.1

我是什么丢在这里?

更新:

上述工作在docker后我加入下个命令.:

从阿尔卑斯山的最新 润硬软件--no-cache-更新--加详细查询来砸dmidecode&&
rm-rf/var/cache/apk/*/tmp/*/sbin/停止/sbin/断电/sbin/重新启动

和下面docker撰写的文件:

特权:真实的

但是,当试图使用上述中。它不能够取demidecode输出。

一帮助将真正的赞赏。

devops docker go kubernetes
2021-11-23 17:03:05
1

最好的答案

2

我是什么丢在这里?

对于初学者来说,错误的处理。

    x,_ := cmd.Output()

永远不要忽略一个错误中去。 不同的语言,比如说,Pyhton,没有例外,提高处理错误返回值是你 唯一 的机会,以弄清如果事情出了错。

第二,你也是无视你的命令是标准的输出流。 这很可能包含一个有用的错误消息的时命令的执行并不工作,所以 os/exec's Output() 它提供作为部分的误差值时 如果不是已经拍摄的 Cmd 配置。 一部分的你的错误处理应该做的一 类型的断言 上的误差值,如果不为零,并且,如果它是一个有效的 *exec.ExitError如果这类成功的断言,检查 其Stderr领域 针对错误信息。

第三,看着你的命令,我能看见你作出一个很容易犯的错误:

    cmd := exec.Command("dmidecode","-t 1")

,空白空间分离的论点。 但是没有壳在这里你穿 -t 1 所有作为一个参数 dmidecode. 你应该通过他们作为 独立的 参数,几乎可以肯定:

    cmd := exec.Command("dmidecode","-t", "1")

最后,你已经发现 不能运行dmidecode在docker容器 ,但要确保阅读和理解所接受的答案。 然后,让您docker容器的构造能够运行 dmidecode 不去。 一旦它的工作原理在命令行,同docker配置应该允许它的工作下去援引。

2021-11-23 17:22:34

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................