小编Evy*_*ias的帖子

在 Golang 中,如何构建/运行 docker-compose 项目?

我想通过提供 docker-compose.yml文件使用 docker 包从 Golang运行docker-compose项目。

按照https://docs.docker.com/engine/api/sdk/examples/中的示例, 我知道如何使用 Golang 创建和运行单个容器,但是有没有办法从 Golang docker 库运行 docker-compose 项目?

我知道我可以做这样的事情

import "os/exec"
exec.Command("docker-compose","up")
Run Code Online (Sandbox Code Playgroud)

但我希望这件事发生在 docker 包中。

go docker dockerfile docker-compose moby

6
推荐指数
1
解决办法
3714
查看次数

不使用Firebase Cloud Messaging或任何其他类似服务的Android推送通知

我正在开发一个用于学习目的的android聊天应用程序,该应用程序使用服务器-客户端体系结构。我用Java编写了服务器端(因为我想学习),而客户端则是一个android应用程序。我正在使用TCP套接字进行通信。

当两个客户端都打开并连接应用程序时,一切工作都很好,但是我希望客户端A 在客户端B没有打开应用程序时仍能够向客户端B发送消息

经过研究后,我意识到我需要使用android push up通知,即使在未通过触发客户端意图打开或运行该应用程序的情况下,我的服务器也可以与客户端(android应用程序)进行通信。我进行了更多研究,发现每个教程都使用第三方服务作为中间人来实现这一目标,例如Firebase Cloud Messaging,这违背了我尝试通过自己做事来学习的目的。

因为这样做是出于学习目的,所以我不想使用其中的任何服务(例如Firebase Cloud Messaging),但我想从我用Java编写的服务器中触发自己的意图,而无需使用中间人。

这里的主要目标是在关闭应用程序时将消息从我的服务器发送到android应用程序,而无需使用任何第三方软件(例如Firebase Cloud Messaging)。

我不确定如何实现这一目标,如果有人能指出正确的方向,我将不胜感激。谢谢!

java sockets client android server

5
推荐指数
1
解决办法
1240
查看次数

在 Golang 中,如何使用 SIGTERM 而不是 SIGKILL 终止 os.exec.Cmd 进程?

目前,我正在使用 Golang os.exec.Cmd.Process.Kill()方法(在 Ubuntu 机器上)终止进程。

这似乎是立即终止进程而不是优雅地终止进程。我启动的一些进程也会写入文件,这会导致文件被截断。

我想使用 Golang 使用SIGTERM而不是SIGKILL优雅地终止进程。

这是一个使用 cmd.Process.Kill() 启动然后终止的进程的简单示例,我想要 Golang 中的 Kill() 方法的替代方法,该方法使用 SIGTERM 而不是 SIGKILL,谢谢!

import "os/exec"

cmd := exec.Command("nc", "example.com", "80")
if err := cmd.Start(); err != nil {
   log.Print(err)
}
go func() {
  cmd.Wait()
}()
// Kill the process - this seems to kill the process ungracefully
cmd.Process.Kill()
Run Code Online (Sandbox Code Playgroud)

linux ubuntu operating-system process go

3
推荐指数
1
解决办法
5710
查看次数