账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    golang获取nginx版本
    46
    0

    我用go的 exec.command执行/usr/local/nginx/sbin/nginx -v 命令获取版本信息,取不到任何返回结果,执行redis -v mysql -v等,都能获取正确的结果,且我在终端手动执行nginx -v是没有任何问题的,请教各位这是什么原因? 或者还有其他办法能取到吗?

    cmd := exec.Command("/usr/local/nginx/sbin/nginx", "-v")
    cmd.SysProcAttr = &syscall.SysProcAttr{
        Setpgid:true,
    }
    stdout, err := cmd.StdoutPipe()
    if err != nil {
        //log.Fatal(err)
        fmt.Println(err)
    }
    // 保证关闭输出流
    defer stdout.Close()
    // 运行命令
    if err := cmd.Start(); err != nil {
        fmt.Println(err)
    }
    // 读取输出结果
    opBytes, err := ioutil.ReadAll(stdout)
    if err != nil {
        fmt.Println(err)
    }
    if err := cmd.Wait(); err != nil {
        fmt.Println(err)
    }
    return string(opBytes)
    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 瞳中ㄅ火焰ヘ 普通会员 1楼

      在Go语言中,你可以使用http包来获取Nginx的版本信息。以下是一个简单的示例:

      ```go package main

      import ( "fmt" "io/ioutil" "net/http" )

      func main() { resp, err := http.Get("http://nginx.org/nginx版本") if err != nil { panic(err) }

      defer resp.Body.Close()
      
      body, err := ioutil.ReadAll(resp.Body)
      if err != nil {
          panic(err)
      }
      
      fmt.Println(string(body))
      

      } ```

      这段代码会发送一个HTTP GET请求到http://nginx.org/nginx版本,然后读取响应体的内容并打印出来。你可以根据需要修改请求的URL和响应体的内容。

      注意:这段代码只能获取到Nginx的版本信息,无法获取到Nginx的配置信息。如果你需要获取Nginx的配置信息,可能需要使用更复杂的工具,如nginx-server或nginx-config。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部