在VM上使用fork()远程启动程序

时间:2013-06-06 15:01:31

标签: linux virtual-machine sh fork

我有一个主机有多个虚拟机的设置。现在我编写了一个C程序,它将分别在每个VM上运行,我希望从主机远程启动该程序。

问题是该程序的启动导致创建一个新的分叉子进程(程序具有fork()的代码)。因此,当我使用以下脚本启动此程序时:

Run.sh(这是在主机上运行):

ssh VM1'程序启动'
ssh VM2'程序启动'
ssh VM3'程序开始'

脚本在执行第1行(ssh VM1“程序启动”)后停止。我认为这是因为fork子进程启动并且正在运行,除非它退出,否则调用sh脚本无法继续。

因此,程序仅在VM1上启动,而我的Run.sh脚本卡住了。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这个怎么样?在后台运行

ssh VM1 'program start' &
ssh VM2 'program start' &
ssh VM3 'program start' &

&

中尝试'
ssh VM1 'program start &'