go - 使用 Golang 启动正在运行的程序的另一个实例的好方法是什么?

标签 go process fork multiprocess

我想要一个 Go 程序启动多个进程,它将与之交互。 (我也不确定要使用哪种 IPC 方法,但也许这是另一个问题)

我想到的是使用 os.Executable() 来获取正在运行的可执行文件的位置,然后使用 exec 包来运行程序的新实例。我想知道是否有另一种方法可以做到这一点而无需查询可执行文件的路径,或者这是否是我应该担心的行为。

最佳答案

在最新版本的 Go (see this older SO answer for details) 中,推荐使用 os.Executable 来查找程序自身的路径。然后您可以使用 exec.Command 来运行它的更多实例。

虽然这很不寻常,所以我想知道您在这里想到的是什么用例。根据我的经验,协调多个流程很棘手,需要解决一个真正的问题才能让你值得。

关于go - 使用 Golang 启动正在运行的程序的另一个实例的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610834/

相关文章:

go - 在 Cloud9 IDE 上运行 go webserver

go - Ref "is not a type"- 在结构中存储类型

json - 在 Go 中将 YAML 转换为 JSON

c - fork() 和虚拟地址空间

c - 如何将父进程和子进程保持在同一个核心上

go - 希望使用传递给库的相同文件内容,而无需两次打开文件

c# - Windows 窗体应用程序中的多线程调用?

C++ 无法获取进程 ID (windows)

linux - mmap 文件支持的映射与 Linux 中的匿名映射

Python 等待所有 fork 进程完成