0

複数の VM を持つホストをセットアップしています。これで、各 VM で個別に実行する C プログラムを作成し、このプログラムをホストからリモートで開始したいと考えています。

問題は、このプログラムを開始すると、新しいフォークされた子プロセスが作成されることです (プログラムには fork() を含むコードがあります)。したがって、次のスクリプトを使用してこのプログラムを開始すると:

Run.sh (これはホストで実行されます):

ssh VM1 'プログラム開始'
ssh VM2 'プログラム開始'
ssh VM3 'プログラム開始'

スクリプトは、1 行目 (ssh VM1 "program start") の実行後に停止します。これは、フォークの子プロセスが開始されて実行され、終了しない限り、呼び出し元の 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 に答える