我有一个具有多个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/