我想使用“go”编写一个控制台应用程序,它将控制权转移到另一个控制台应用程序。
以下是步骤:
- 运行二进制应用程序,它会在必要时验证并安装一些东西
- 二进制应用程序构造带有选项的命令字符串
- 二进制应用程序启动进程 B 并退出(在我的例子中是 node.js 应用程序)
- 进程 B 运行完成并将输出发送到同一控制台。
我需要的唯一步骤是能够启动新进程并退出,这就是这里的问题。
我想使用“go”编写一个控制台应用程序,它将控制权转移到另一个控制台应用程序。
以下是步骤:
我需要的唯一步骤是能够启动新进程并退出,这就是这里的问题。
os 包 看起来具有您可能需要的功能。用于启动进程的函数 StartProcess 和用于退出进程的函数 (*Process) Kill。
os/exec
可能会有所帮助:
包 exec 运行外部命令。它包装了 os.StartProcess 以便更轻松地重新映射标准输入和标准输出、将 I/O 与管道连接以及进行其他调整。
查看Cmd.Start
示例。
请参阅Golang 分叉过程。简而言之,直接执行此操作存在问题。您应该改为使用非 Go 程序来启动您的 node.js 应用程序。