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

问题在于该程序的启动会导致创建新的派生子进程(程序的代码带有fork())。因此,当我使用以下脚本启动该程序时:

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

ssh VM1“程序启动”
ssh VM2“程序启动”
ssh VM3“程序启动”

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

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

有人知道如何解决这个问题吗?

最佳答案

这个怎么样?在后台运行

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


&内尝试'

ssh VM1 'program start &'

关于linux - 在VM上使用fork()远程启动程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16965563/

10-10 17:44
查看更多