草庐IT

Windows服务移植到linux

全部标签

go - 如何在 go 中对 gRPC 服务进行单元测试

我在对gRPC服务进行单元测试时遇到困难。我看了TestingagRPCservice但它对我不起作用,不确定我做错了什么。Add方法的gRPC服务实现:typeserverstruct{}funcmain(){listener,err:=net.Listen("tcp",":4040")iferr!=nil{panic(err)}srv:=grpc.NewServer()service.RegisterMathOpServiceServer(srv,&server{})reflection.Register(srv)ife:=srv.Serve(listener);e!=nil{pa

linux - 使用 Golang 从子进程 ID 获取父进程 ID

我想使用适用于Linux操作系统的Golang从特定子进程ID(pid)获取父进程ID(ppid)我有这段代码给出了当前进程的ppid和pid,但我想检索我指定的子进程的ppid而不是当前进程。packagemainimport("fmt""os")funcmain(){pid:=os.Getpid()parentpid:=os.Getppid()fmt.Printf("Theparentprocessidof%vis%v\n",pid,parentpid)}有没有办法像这样传递pidos.Getppid(pid)或任何其他方法来检索Golang中指定pid的ppid?

go - 如何使用适用于 Windows 的 GitLab 管道进行构建

我有以下.gitlab-ci.yml...stages:-test-build-artimage:golang:1.9.2variables:BIN_NAME:exampleARTIFACTS_DIR:artifactsGO_PROJECT:exampleGOPATH:/gobefore_script:-mkdir-p${GOPATH}/src/${GO_PROJECT}-mkdir-p${CI_PROJECT_DIR}/${ARTIFACTS_DIR}-goget-ugithub.com/golang/dep/cmd/dep-cp-r${CI_PROJECT_DIR}/*${GOPA

java - 向 TCP 服务器指示 Java TCP 客户端已完成写入流

我正在编写一个连接到GolangTCP服务器的JavaTCP客户端。服务器使用以下代码从客户端读取消息:func(tcpHandlerTCPHandler)getClientMsgBytes(connection*net.TCPConn)([]byte,error){clientMsgBytes,err:=ioutil.ReadAll(connection)iferr!=nil{returnnil,err}returnclientMsgBytes,nil}我的客户端使用以下代码向服务器发送消息:try(Socketsocket=newSocket("localhost",9000)){

Golang http 服务器根据内容类型返回 html 或 json

我正在尝试使用gorillamux在Golang中编写简单的RESTful应用程序。我写了几个如下所示的处理程序:funcgetUser(whttp.ResponseWriter,r*http.Request){ifr.Header.Get("Content-type")=="application/json"{w.Header().Set("Content-Type","application/json")u,err:=_getUser(r)iferr!=nil{http.NotFound(w,r)return}json.NewEncoder(w).Encode(u)//askedf

linux - AT 命令与/dev/tty* 交换

我有一个板载GPRS的设备。GPRS与第三方应用程序连接并且可以正常工作。我需要知道连接的信号强度,所以,我使用ATZ,然后是AT+CSQ命令。当我使用某些终端软件工作时,它可以工作。然后,我尝试使用https://github.com/ishuah/bifrost软如终端。它也有效。但是我怎样才能简单地与设备通信,而不是使用终端,没有重新连接或连接中止等?我简单地尝试了echoATZ>/dev/ttyX-没有答案//Thiswrites,butreadsonlyzeros(((packagemainimport("github.com/jacobsa/go-serial/serial

javascript - 禁用按钮调用服务器然后重新启用按钮

我见过很多和我类似的问题,但是花了几个小时浏览,找不到适合我的情况的答案。我有一个基于Go的网络服务器。我有一个HTML模板页面,可以让我用当前浏览器时间更新'nix系统上的硬件时钟和系统时钟:更新按钮的类型为提交并调用Go代码,这会进行一些系统调用,这需要几秒钟,而且我不能让这个服务器代码在它仍在处理第一个请求时被调用两次。所以我想禁用更新按钮,然后在服务器响应后重新启用它。我有jQuery,所以我知道我可以有一个通过“onclick”调用的函数并进行这些调用:$("#updateButton").prop("disabled",true);$("#updateButton").pr

postgresql - GoLang 服务无法使用 docker compose 访问 Postgres

我有一个用Go编写的HTML服务。它使用Postgres,但是当使用dockercompose将它们组合在一起时,我得到“dialtcp0.0.0.0:5432:connect:connectionrefused”在仅使用docker并引用Postgres的运行图像构建启动服务时工作来自go的调用片段psqlInfo:=fmt.Sprintf("host=%sport=%suser=%spassword=%sdbname=%ssslmode=disable",host,port,user,password,dbname)db,err:=sql.Open("postgres",psqlI

go - 无法使用默认服务帐户和谷歌云库从谷歌 Kubernetes 引擎访问谷歌云存储

我编写了一个应用程序,它具有使用golang通过GoogleKubernetesEngine上传图像的功能。其他一切正常,但当我尝试将图像写入GoogleCloudStorage时,我一直遇到问题。这是我在golang中实际使用googlestorageapi的代码:funcputImage(imageURLstring,imagemultipart.File)bool{fmt.Println("Puttingintoimagelocation:"+imageURL)contextBackground:=context.Background()storageClient,err:=st

go - http put 服务器处理大文件

请考虑这个codepostedhere,它处理httpPUT请求。它工作正常,有小文件:$curl-vhttp://192.168.1.10:9193/-Tred.tx*Trying192.168.1.10...*Connectedto192.168.1.10(192.168.1.10)port9193(#0)>PUT/red.txHTTP/1.1>Host:192.168.1.10:9193>User-Agent:curl/7.47.0>Accept:*/*>Content-Length:19697247>Expect:100-continue>但是-向它发送一个大于1G大小的大文件