Golang os.Exit() 将控制权返回给被调用的进程

Golang os.Exit() return control back to called process

提问人:chetu 提问时间:10/23/2023 最后编辑:chetu 更新时间:11/16/2023 访问量:47

问:

在 dovecot 登录后脚本中,我正在尝试使用 go build 作为脚本来检查存储在数据库中的一些用户信息。Dovecot,登录后

登录后脚本失败,我们可以返回退出代码 1,127...。等标准返回码。 如果成功是返回进程并返回控制权,假设如果我们使用 bash 脚本,成功是 exec $@

exec "$@"

$@包含 --> 我需要在 go-lang 程序中做同样的事情,在 go-lang 中,我们可以返回整数的退出代码,我试图这样做,它失败了,请帮我解决这个问题,我怎样才能做到这一点...... 你的回答对我来说是价格低。/usr/lib/dovecot/script-login

在 go-lang 中,我期望作为 bash

exec "$@"

同样应该在 go-lang 中返回。

bash 脚本中的示例

#!/bin/sh

export MAIL=maildir:/tmp/test
export USERDB_KEYS="$USERDB_KEYS mail"
exec "$@"

需要在 Go Lang 中做同样的事情

package main

import (
    "os"
    "fmt"       
)
func main() {
    username := os.Getenv("USER")
    ip := os.Getenv("IP")
    fmt.Print("Username : %s and IP address : %s", username, ip)
    // Need to do exec $@
}

你能帮我解决这个问题吗

鸽子 谷歌-app-engine-golang

评论

2赞 Steffen Ullrich 10/23/2023
这个问题对我来说毫无意义。 是提供给当前 shell 脚本的命令行参数,在 Go 中匹配。它不能从程序中返回,只能将整数作为退出代码返回。您引用的链接在示例中不包含任何内容,而是 .这不是用来“把控制权还回来”,而是用来在完成一些设置后执行命令行上给出的程序,即像 Go 中的 os/exec 一样。$@os.Args[1:]return $@exec $@

答: 暂无答案