0

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

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

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

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

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

结果,程序只在 VM1 上启动,我的 Run.sh 脚本卡住了。

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

4

1 回答 1

0

这个怎么样?在后台运行

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

&里面试试'

ssh VM1 'program start &'
于 2013-06-06T16:13:22.470 回答