gpt4 book ai didi

linux - 使用golang调用systemd-coredump程序失败

转载 作者:行者123 更新时间:2023-12-01 22:41:18 28 4
gpt4 key购买 nike

我正在尝试使用golang调用systemd-coredump程序以生成核心转储,但是它由于no such file or directory错误以某种方式失败。
我正在将这段代码容器化并将其部署为kubernetes中的Pod。
Kubernetes的Rhel版本为7.6
这是我的代码:

package main
import (
"os/exec"
"os"
"fmt"
)

func main(){

coreProcessID := "<some process id>"
partialCmd := "<arguments for core dump like %u %g %s %t %c %E>"
coreCmd := "/usr/lib/systemd/systemd-coredump " + coreProcessID + " " + partialCmd
fmt.Println("coreCmd is ", coreCmd)
cmd := exec.Command(coreCmd)
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + string(output))
} else {
fmt.Println(string(output))
}
}
我收到此错误: fork/exec /usr/lib/systemd/systemd-coredump 59009 %u %g %s %t %c %E: no such file or directory: 我什至尝试使用 syscall.Exec,但它只是退出程序而没有任何错误或输出。
在Python中,它可以使用 os.system(core_cmd)正常运行,但对于golang则以某种方式失败。
如何使用golang调用systemd-coredump程序?
重试以下更改
cmd := exec.Command(coreCmd, coreProcessID, partialCmd)
var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
}
fmt.Println("Result: " + out.String())
但是它不会检索输出或生成核心转储

最佳答案

如果像这样想象,您的原始示例在某种程度上可以工作

import (
"fmt"
"os"
"os/exec"
"strings"
)

func main() {

coreProcessID := os.Args[1]
partialCmd := "%u %g %s %t %c %E"
coreCmdArgs := coreProcessID + " " + partialCmd
fmt.Println("coreCmdArgs are ", coreCmdArgs)
coreCmdArgsAsSlice := strings.Split(" ", coreCmdArgs)
cmd := exec.Command("/usr/lib/systemd/systemd-coredump", coreCmdArgsAsSlice...)
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + string(output))
} else {
fmt.Println(string(output))
}
}
我系统上的上述内容给出了此错误,这大概是由于systemd-coredump的工作方式
coreCmdArgs are  885 %u %g %s %t %c %E
exit status 1: Not enough arguments passed by the kernel (1, expected 6).

关于linux - 使用golang调用systemd-coredump程序失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63600216/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com