【发布时间】:2013-06-02 15:59:39
【问题描述】:
我的主机有多个虚拟机。现在我已经编写了一个 C 程序,它将在每个 VM 上单独运行,并且我希望这个程序可以从主机远程启动。
问题是这个程序的启动会导致一个新的分叉子进程被创建(程序有 fork() 的代码)。所以当我使用下面的脚本来启动这个程序时:
Run.sh(在主机上运行):
ssh VM1 '程序启动'
ssh VM2 '程序启动'
ssh VM3 '程序启动'
脚本在执行第 1 行后停止(ssh VM1 "program start")。我认为这是因为一个 fork 子进程启动并正在运行,除非它退出,否则调用 sh 脚本无法继续。
因此程序只能在 VM1 上启动,我的 Run.sh 脚本卡住了。
有人知道如何解决这个问题吗?
【问题讨论】:
标签: linux virtual-machine sh fork